aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/Core/Executor.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2010-08-05 17:53:23 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2010-08-05 17:53:23 +0000
commitf8e621c4845664a9ad32b5f4b8fe3db2b134dac3 (patch)
treea220aed601f4a0741cae0f25b347e87c3eac650e /lib/Core/Executor.cpp
parent535a4efdffdbd62d7c3956644cd6bdecdca7d18f (diff)
downloadklee-f8e621c4845664a9ad32b5f4b8fe3db2b134dac3.tar.gz
Store CallInst and InvokeInst operands in a fixed order: function, arg0, arg1, ...
git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@110352 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Core/Executor.cpp')
-rw-r--r--lib/Core/Executor.cpp12
1 files changed, 2 insertions, 10 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index 5632b208..b0af78a1 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -1499,15 +1499,7 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
case Instruction::Invoke:
case Instruction::Call: {
- CallSite cs;
- unsigned argStart;
- if (i->getOpcode()==Instruction::Call) {
- cs = CallSite(cast<CallInst>(i));
- argStart = 1;
- } else {
- cs = CallSite(cast<InvokeInst>(i));
- argStart = 3;
- }
+ CallSite cs(i);
unsigned numArgs = cs.arg_size();
Function *f = getCalledFunction(cs, state);
@@ -1521,7 +1513,7 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
arguments.reserve(numArgs);
for (unsigned j=0; j<numArgs; ++j)
- arguments.push_back(eval(ki, argStart+j, state).value);
+ arguments.push_back(eval(ki, j+1, state).value);
if (!f) {
// special case the call with a bitcast case