diff options
| author | Chris Lattner <sabre@nondot.org> | 2002-07-30 18:54:22 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2002-07-30 18:54:22 +0000 | 
| commit | e8e4605021141d689493132a9c7c6fce6294937f (patch) | |
| tree | 0f0c6d598e711050201cc4079fb8b874214dc62c /lib/Transforms/Utils/Linker.cpp | |
| parent | 53b7f26150060c990c4b3431d340d52747c0b24c (diff) | |
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/Linker.cpp')
| -rw-r--r-- | lib/Transforms/Utils/Linker.cpp | 10 | 
1 files changed, 2 insertions, 8 deletions
diff --git a/lib/Transforms/Utils/Linker.cpp b/lib/Transforms/Utils/Linker.cpp index d8f67ff1aa..48e40d0b3d 100644 --- a/lib/Transforms/Utils/Linker.cpp +++ b/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 <iostream>  using std::cerr;  using std::string;  using std::map; @@ -134,7 +129,7 @@ static Value *RemapOperand(const Value *In, map<const Value*, Value*> &LocalMap,          Value *V2 = RemapOperand(CE->getOperand(1), LocalMap, GlobalMap);          Result = ConstantExpr::get(CE->getOpcode(), cast<Constant>(V1), -                                   cast<Constant>(V2), CE->getType());         +                                   cast<Constant>(V2));                } else {          // GetElementPtr Expression          assert(CE->getOpcode() == Instruction::GetElementPtr); @@ -145,8 +140,7 @@ static Value *RemapOperand(const Value *In, map<const Value*, Value*> &LocalMap,            Indices.push_back(cast<Constant>(RemapOperand(CE->getOperand(i),                                                          LocalMap, GlobalMap))); -        Result = ConstantExpr::get(CE->getOpcode(), cast<Constant>(Ptr), -                                   Indices, CE->getType()); +        Result = ConstantExpr::getGetElementPtr(cast<Constant>(Ptr), Indices);        }      } else {  | 
