diff options
Diffstat (limited to 'lib/Core/Executor.cpp')
-rw-r--r-- | lib/Core/Executor.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index 1af88d88..bc27c5f3 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -4126,7 +4126,8 @@ void Executor::callExternalFunction(ExecutionState &state, KInstruction *target, return; } - if (!state.addressSpace.copyInConcretes()) { + if (!state.addressSpace.copyInConcretes(ExternalCalls == + ExternalCallPolicy::All)) { terminateStateOnExecError(state, "external modified read-only object", StateTerminationType::External); return; @@ -4143,7 +4144,8 @@ void Executor::callExternalFunction(ExecutionState &state, KInstruction *target, // Update errno memory object with the errno value from the call int error = externalDispatcher->getLastErrno(); state.addressSpace.copyInConcrete(result.first, result.second, - (uint64_t)&error); + (uint64_t)&error, + ExternalCalls == ExternalCallPolicy::All); #endif Type *resultType = target->inst->getType(); |