diff options
| author | Tomasz Kuchta <t.kuchta@samsung.com> | 2023-11-17 15:54:01 +0100 |
|---|---|---|
| committer | MartinNowack <2443641+MartinNowack@users.noreply.github.com> | 2024-01-12 14:07:49 +0000 |
| commit | 5ea5d436e4e52709c0f4e02a1b0ed97d944eeb4d (patch) | |
| tree | e430ed64734e6cea5c0e0bf523e9a9f447971d65 /lib/Core/ExecutionState.cpp | |
| parent | ad0daf5bc3c534f93aff24d196efbfef2ef3e36b (diff) | |
| download | klee-5ea5d436e4e52709c0f4e02a1b0ed97d944eeb4d.tar.gz | |
Follow-up: applied review comments, implemented meta-data cleanup (one more map added to ExecutionState); now storing addresses of MemoryObjects for easier cleanup
Diffstat (limited to 'lib/Core/ExecutionState.cpp')
| -rw-r--r-- | lib/Core/ExecutionState.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Core/ExecutionState.cpp b/lib/Core/ExecutionState.cpp index 1c1f477c..cb8a3ced 100644 --- a/lib/Core/ExecutionState.cpp +++ b/lib/Core/ExecutionState.cpp @@ -38,6 +38,10 @@ cl::opt<bool> DebugLogStateMerge( "debug-log-state-merge", cl::init(false), cl::desc("Debug information for underlying state merging (default=false)"), cl::cat(MergeCat)); + +} +namespace klee { + extern cl::opt<bool> SingleObjectResolution; } /***/ @@ -111,7 +115,9 @@ ExecutionState::ExecutionState(const ExecutionState& state): ? state.unwindingInformation->clone() : nullptr), coveredNew(state.coveredNew), - forkDisabled(state.forkDisabled) { + forkDisabled(state.forkDisabled), + base_addrs(state.base_addrs), + base_mos(state.base_mos) { for (const auto &cur_mergehandler: openMergeStack) cur_mergehandler->addOpenState(this); } @@ -141,6 +147,16 @@ void ExecutionState::popFrame() { } void ExecutionState::deallocate(const MemoryObject *mo) { + if (SingleObjectResolution) { + auto mos_it = base_mos.find(mo->address); + if (mos_it != base_mos.end()) { + for (auto it = mos_it->second.begin(); it != mos_it->second.end(); ++it) { + base_addrs.erase(*it); + } + base_mos.erase(mos_it->first); + } + } + if (!stackAllocator || !heapAllocator) return; |
