diff options
Diffstat (limited to 'lib/Core/Executor.cpp')
-rw-r--r-- | lib/Core/Executor.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index e4f9388e..7cb01e5c 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -3286,11 +3286,14 @@ void Executor::executeAlloc(ExecutionState &state, bool isLocal, KInstruction *target, bool zeroMemory, - const ObjectState *reallocFrom) { + const ObjectState *reallocFrom, + size_t allocationAlignment) { size = toUnique(state, size); if (ConstantExpr *CE = dyn_cast<ConstantExpr>(size)) { const llvm::Value *allocSite = state.prevPC->inst; - size_t allocationAlignment = getAllocationAlignment(allocSite); + if (allocationAlignment == 0) { + allocationAlignment = getAllocationAlignment(allocSite); + } MemoryObject *mo = memory->allocate(CE->getZExtValue(), isLocal, /*isGlobal=*/false, allocSite, allocationAlignment); |