From d2f335bb6be7c6739223ea68edf453a7f8f53401 Mon Sep 17 00:00:00 2001 From: Dan Liew Date: Sat, 18 Mar 2017 10:40:33 +0000 Subject: [WIP] Fix bug where stats would not be updated on early exit caused by finding a bug with the `-exit-on-error` option enabled. --- lib/Core/Executor.cpp | 7 +++++++ lib/Core/Executor.h | 2 ++ 2 files changed, 9 insertions(+) (limited to 'lib') diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index 95812dd7..1930cdc3 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -3835,6 +3835,13 @@ size_t Executor::getAllocationAlignment(const llvm::Value *allocSite) const { "Returned alignment must be a power of two"); return alignment; } + +void Executor::prepareForEarlyExit() { + if (statsTracker) { + // Make sure stats get flushed out + statsTracker->done(); + } +} /// Interpreter *Interpreter::create(LLVMContext &ctx, const InterpreterOptions &opts, diff --git a/lib/Core/Executor.h b/lib/Core/Executor.h index 7c18ae1f..c3f6e705 100644 --- a/lib/Core/Executor.h +++ b/lib/Core/Executor.h @@ -487,6 +487,8 @@ public: inhibitForking = value; } + void prepareForEarlyExit(); + /*** State accessor methods ***/ virtual unsigned getPathStreamID(const ExecutionState &state); -- cgit 1.4.1