From 0a8e8e1a4ea46fa5da067369ac43d8a459d0cac0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 15 Jul 2004 02:51:31 +0000 Subject: [PATCH] Fixes for PR341 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14847 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Assembly/CachedWriter.h | 14 +++--------- lib/ExecutionEngine/ExecutionEngine.cpp | 8 +++---- lib/ExecutionEngine/Interpreter/Execution.cpp | 4 ++-- lib/VMCore/AsmWriter.cpp | 22 +++++++++---------- 4 files changed, 20 insertions(+), 28 deletions(-) diff --git a/include/llvm/Assembly/CachedWriter.h b/include/llvm/Assembly/CachedWriter.h index 1306e379214..f5c947be52d 100644 --- a/include/llvm/Assembly/CachedWriter.h +++ b/include/llvm/Assembly/CachedWriter.h @@ -20,15 +20,12 @@ #include "llvm/Value.h" #include -namespace { -class SlotMachine; // Internal private class -} - namespace llvm { class Module; class PointerType; class AssemblyWriter; // Internal private class +class SlotMachine; class CachedWriter { AssemblyWriter *AW; @@ -53,14 +50,9 @@ public: // setModule - Invalidate internal state, use the new module instead. void setModule(const Module *M); - CachedWriter &operator<<(const Value *V); - - inline CachedWriter &operator<<(const Value &X) { - return *this << &X; - } + CachedWriter &operator<<(const Value &V); - CachedWriter &operator<<(const Type *X); - inline CachedWriter &operator<<(const PointerType *X); + CachedWriter &operator<<(const Type &X); inline CachedWriter &operator<<(std::ostream &(&Manip)(std::ostream &)) { Out << Manip; return *this; diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp index 465b19e42da..e53c468a2f3 100644 --- a/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/lib/ExecutionEngine/ExecutionEngine.cpp @@ -278,7 +278,7 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) { } break; default: - std::cout << "ERROR: Constant unimp for type: " << C->getType() << "\n"; + std::cout << "ERROR: Constant unimp for type: " << *C->getType() << "\n"; abort(); } return Result; @@ -319,7 +319,7 @@ void ExecutionEngine::StoreValueToMemory(GenericValue Val, GenericValue *Ptr, Ptr->Untyped[7] = (Val.ULongVal >> 56) & 255; break; default: - std::cout << "Cannot store value of type " << Ty << "!\n"; + std::cout << "Cannot store value of type " << *Ty << "!\n"; } } else { switch (Ty->getTypeID()) { @@ -352,7 +352,7 @@ void ExecutionEngine::StoreValueToMemory(GenericValue Val, GenericValue *Ptr, Ptr->Untyped[0] = (Val.ULongVal >> 56) & 255; break; default: - std::cout << "Cannot store value of type " << Ty << "!\n"; + std::cout << "Cannot store value of type " << *Ty << "!\n"; } } } @@ -471,7 +471,7 @@ void ExecutionEngine::InitializeMemory(const Constant *Init, void *Addr) { } default: - std::cerr << "Bad Type: " << Init->getType() << "\n"; + std::cerr << "Bad Type: " << *Init->getType() << "\n"; assert(0 && "Unknown constant type to initialize memory with!"); } } diff --git a/lib/ExecutionEngine/Interpreter/Execution.cpp b/lib/ExecutionEngine/Interpreter/Execution.cpp index a9846705b43..1095ecbeb02 100644 --- a/lib/ExecutionEngine/Interpreter/Execution.cpp +++ b/lib/ExecutionEngine/Interpreter/Execution.cpp @@ -146,7 +146,7 @@ GenericValue Interpreter::getConstantExprValue (ConstantExpr *CE, getOperandValue(CE->getOperand(1), SF), getOperandValue(CE->getOperand(2), SF)); default: - std::cerr << "Unhandled ConstantExpr: " << CE << "\n"; + std::cerr << "Unhandled ConstantExpr: " << *CE << "\n"; abort(); return GenericValue(); } @@ -236,7 +236,7 @@ static GenericValue executeMulInst(GenericValue Src1, GenericValue Src2, IMPLEMENT_BINARY_OPERATOR(*, Float); IMPLEMENT_BINARY_OPERATOR(*, Double); default: - std::cout << "Unhandled type for Mul instruction: " << Ty << "\n"; + std::cout << "Unhandled type for Mul instruction: " << *Ty << "\n"; abort(); } return Dest; diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp index bd6c09e0e51..0f76712a2b5 100644 --- a/lib/VMCore/AsmWriter.cpp +++ b/lib/VMCore/AsmWriter.cpp @@ -34,7 +34,7 @@ #include using namespace llvm; -namespace { +namespace llvm { /// This class provides computation of slot numbers for LLVM Assembly writing. /// @brief LLVM Assembly Writing Slot Computation. @@ -154,7 +154,7 @@ public: }; -} +} // end namespace llvm static RegisterPass X("printm", "Print module to stderr",PassInfo::Analysis|PassInfo::Optimization); @@ -1213,27 +1213,27 @@ CachedWriter::~CachedWriter() { delete SC; } -CachedWriter &CachedWriter::operator<<(const Value *V) { +CachedWriter &CachedWriter::operator<<(const Value &V) { assert(AW && SC && "CachedWriter does not have a current module!"); - if (const Instruction *I = dyn_cast(V)) + if (const Instruction *I = dyn_cast(&V)) AW->write(I); - else if (const BasicBlock *BB = dyn_cast(V)) + else if (const BasicBlock *BB = dyn_cast(&V)) AW->write(BB); - else if (const Function *F = dyn_cast(V)) + else if (const Function *F = dyn_cast(&V)) AW->write(F); - else if (const GlobalVariable *GV = dyn_cast(V)) + else if (const GlobalVariable *GV = dyn_cast(&V)) AW->write(GV); else - AW->writeOperand(V, true, true); + AW->writeOperand(&V, true, true); return *this; } -CachedWriter& CachedWriter::operator<<(const Type *Ty) { +CachedWriter& CachedWriter::operator<<(const Type &Ty) { if (SymbolicTypes) { const Module *M = AW->getModule(); - if (M) WriteTypeSymbolic(Out, Ty, M); + if (M) WriteTypeSymbolic(Out, &Ty, M); } else { - AW->write(Ty); + AW->write(&Ty); } return *this; } -- 2.34.1