diff options
author | Lukas Wölfer <lukas.woelfer@rwth-aachen.de> | 2018-09-23 03:12:16 +0200 |
---|---|---|
committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2018-09-30 21:45:17 +0100 |
commit | f05935dc16bda1748d02a71cb0278fa4ec03c12b (patch) | |
tree | e8813785fd25f1c7c718900a8099baf31d5a3210 /lib | |
parent | 40c1ab5c3d144cde0a513b708b6fb46f2ae1a0dd (diff) | |
download | klee-f05935dc16bda1748d02a71cb0278fa4ec03c12b.tar.gz |
Fix a crash when the last running state is terminated during merging
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Core/Executor.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index 04fd6941..3e37a6c6 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -2584,9 +2584,6 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) { void Executor::updateStates(ExecutionState *current) { if (searcher) { searcher->update(current, addedStates, removedStates); - searcher->update(nullptr, continuedStates, pausedStates); - pausedStates.clear(); - continuedStates.clear(); } states.insert(addedStates.begin(), addedStates.end()); @@ -2607,6 +2604,12 @@ void Executor::updateStates(ExecutionState *current) { delete es; } removedStates.clear(); + + if (searcher) { + searcher->update(nullptr, continuedStates, pausedStates); + pausedStates.clear(); + continuedStates.clear(); + } } template <typename TypeIt> |