diff options
author | Valentin Wüstholz <wuestholz@gmail.com> | 2015-12-04 18:55:24 -0600 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2015-12-11 14:20:06 +0000 |
commit | ee5a905cda1af731c3994e63f140c654c5dc7c2c (patch) | |
tree | 4dfb45d70502dda9d0ffacc0613f0d494708108a /lib/Core/SpecialFunctionHandler.cpp | |
parent | 1d099af31d3415c89dfbb56c8fdc1a3bcf1309c7 (diff) | |
download | klee-ee5a905cda1af731c3994e63f140c654c5dc7c2c.tar.gz |
Add command line flag ``--silent-klee-assume``to suppress errors due to
infeasible assumptions.
Diffstat (limited to 'lib/Core/SpecialFunctionHandler.cpp')
-rw-r--r-- | lib/Core/SpecialFunctionHandler.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/Core/SpecialFunctionHandler.cpp b/lib/Core/SpecialFunctionHandler.cpp index 52abff5f..8befe8f6 100644 --- a/lib/Core/SpecialFunctionHandler.cpp +++ b/lib/Core/SpecialFunctionHandler.cpp @@ -42,6 +42,11 @@ namespace { cl::init(false), cl::desc("Prefer creation of POSIX inputs (command-line arguments, files, etc.) with human readable bytes. " "Note: option is expensive when creating lots of tests (default=false)")); + + cl::opt<bool> + SilentKleeAssume("silent-klee-assume", + cl::init(false), + cl::desc("Do not treat infeasible assumption as error.")); } @@ -391,9 +396,13 @@ void SpecialFunctionHandler::handleAssume(ExecutionState &state, bool success __attribute__ ((unused)) = executor.solver->mustBeFalse(state, e, res); assert(success && "FIXME: Unhandled solver failure"); if (res) { - executor.terminateStateOnError(state, - "invalid klee_assume call (provably false)", - "user.err"); + if (SilentKleeAssume) { + executor.terminateState(state); + } else { + executor.terminateStateOnError(state, + "invalid klee_assume call (provably false)", + "user.err"); + } } else { executor.addConstraint(state, e); } |