aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Core/Executor.cpp5
-rw-r--r--lib/Core/ExternalDispatcher.cpp4
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index a921511e..67459650 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1378,9 +1378,10 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
if (ConstantExpr *CE = dyn_cast<ConstantExpr>(cond)) {
// Somewhat gross to create these all the time, but fine till we
// switch to an internal rep.
+ const llvm::IntegerType *Ty =
+ cast<IntegerType>(si->getCondition()->getType());
ConstantInt *ci =
- ConstantInt::get(cast<IntegerType>(si->getCondition()->getType()),
- CE->getZExtValue());
+ getGlobalContext().getConstantInt(Ty, CE->getZExtValue());
unsigned index = si->findCaseValue(ci);
transferToBasicBlock(si->getSuccessor(index), si->getParent(), state);
} else {
diff --git a/lib/Core/ExternalDispatcher.cpp b/lib/Core/ExternalDispatcher.cpp
index 80bff188..a330a7cd 100644
--- a/lib/Core/ExternalDispatcher.cpp
+++ b/lib/Core/ExternalDispatcher.cpp
@@ -198,7 +198,7 @@ Function *ExternalDispatcher::createDispatcher(Function *target, Instruction *in
BasicBlock *dBB = BasicBlock::Create("entry", dispatcher);
- Instruction *argI64sp = new IntToPtrInst(ConstantInt::get(Type::Int64Ty, (long) (void*) &gTheArgsP),
+ Instruction *argI64sp = new IntToPtrInst(getGlobalContext().getConstantInt(Type::Int64Ty, (long) (void*) &gTheArgsP),
PointerType::getUnqual(PointerType::getUnqual(Type::Int64Ty)),
"argsp",
dBB);
@@ -207,7 +207,7 @@ Function *ExternalDispatcher::createDispatcher(Function *target, Instruction *in
unsigned i = 0;
for (CallSite::arg_iterator ai = cs.arg_begin(), ae = cs.arg_end();
ai!=ae; ++ai, ++i) {
- Value *index = ConstantInt::get(Type::Int32Ty, i+1);
+ Value *index = getGlobalContext().getConstantInt(Type::Int32Ty, i+1);
Instruction *argI64p = GetElementPtrInst::Create(argI64s, index, "", dBB);
Instruction *argp = new BitCastInst(argI64p,