diff options
author | Frank Busse <bb0xfb@gmail.com> | 2021-12-21 13:59:30 +0000 |
---|---|---|
committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2022-01-05 22:36:54 +0000 |
commit | 27cfe79c1867ece6edf0c4a4bfcbdecf01020774 (patch) | |
tree | 08b204208a9b29efd114ae8d4d201519d5180869 /lib/Core/SpecialFunctionHandler.cpp | |
parent | 62e27ff8cad97c12f3051a5fdcf8cd4aade96894 (diff) | |
download | klee-27cfe79c1867ece6edf0c4a4bfcbdecf01020774.tar.gz |
introduce BranchTypes
Diffstat (limited to 'lib/Core/SpecialFunctionHandler.cpp')
-rw-r--r-- | lib/Core/SpecialFunctionHandler.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/Core/SpecialFunctionHandler.cpp b/lib/Core/SpecialFunctionHandler.cpp index ab2f07b1..e2ff9cb2 100644 --- a/lib/Core/SpecialFunctionHandler.cpp +++ b/lib/Core/SpecialFunctionHandler.cpp @@ -715,18 +715,17 @@ void SpecialFunctionHandler::handleRealloc(ExecutionState &state, ref<Expr> address = arguments[0]; ref<Expr> size = arguments[1]; - Executor::StatePair zeroSize = executor.fork(state, - Expr::createIsZero(size), - true); - + Executor::StatePair zeroSize = + executor.fork(state, Expr::createIsZero(size), true, BranchType::Realloc); + if (zeroSize.first) { // size == 0 executor.executeFree(*zeroSize.first, address, target); } if (zeroSize.second) { // size != 0 - Executor::StatePair zeroPointer = executor.fork(*zeroSize.second, - Expr::createIsZero(address), - true); - + Executor::StatePair zeroPointer = + executor.fork(*zeroSize.second, Expr::createIsZero(address), true, + BranchType::Realloc); + if (zeroPointer.first) { // address == 0 executor.executeAlloc(*zeroPointer.first, size, false, target); } |