diff options
Diffstat (limited to 'lib/Core/Executor.cpp')
-rw-r--r-- | lib/Core/Executor.cpp | 5 |
1 files changed, 3 insertions, 2 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 { |