From a13a2dac7eebbbe5e9c31966329a208201e6cb3c Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 30 Jul 2002 18:54:22 +0000 Subject: Cleanup ConstantExpr handling: * Correctly delete TypeHandles in AsmParser. In addition to not leaking memory, this prevents a bug that could have occurred when a type got resolved that the constexpr was using * Check for errors in the AsmParser instead of hitting assertion failures deep in the code * Simplify the interface to the ConstantExpr class, removing unneccesary parameters to the ::get* methods. * Rename the 'getelementptr' version of ConstantExpr::get to ConstantExpr::getGetElementPtr llvm-svn: 3160 --- llvm/lib/Transforms/Utils/Linker.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'llvm/lib/Transforms') diff --git a/llvm/lib/Transforms/Utils/Linker.cpp b/llvm/lib/Transforms/Utils/Linker.cpp index d8f67ff1aad..48e40d0b3d9 100644 --- a/llvm/lib/Transforms/Utils/Linker.cpp +++ b/llvm/lib/Transforms/Utils/Linker.cpp @@ -11,15 +11,10 @@ #include "llvm/Transforms/Utils/Linker.h" #include "llvm/Module.h" -#include "llvm/Function.h" -#include "llvm/BasicBlock.h" -#include "llvm/GlobalVariable.h" #include "llvm/SymbolTable.h" #include "llvm/DerivedTypes.h" #include "llvm/iOther.h" #include "llvm/Constants.h" -#include "llvm/Argument.h" -#include using std::cerr; using std::string; using std::map; @@ -134,7 +129,7 @@ static Value *RemapOperand(const Value *In, map &LocalMap, Value *V2 = RemapOperand(CE->getOperand(1), LocalMap, GlobalMap); Result = ConstantExpr::get(CE->getOpcode(), cast(V1), - cast(V2), CE->getType()); + cast(V2)); } else { // GetElementPtr Expression assert(CE->getOpcode() == Instruction::GetElementPtr); @@ -145,8 +140,7 @@ static Value *RemapOperand(const Value *In, map &LocalMap, Indices.push_back(cast(RemapOperand(CE->getOperand(i), LocalMap, GlobalMap))); - Result = ConstantExpr::get(CE->getOpcode(), cast(Ptr), - Indices, CE->getType()); + Result = ConstantExpr::getGetElementPtr(cast(Ptr), Indices); } } else { -- cgit v1.2.3