about summary refs log tree commit diff homepage
path: root/lib/Core/Executor.h
diff options
context:
space:
mode:
authorCristian Cadar <c.cadar@imperial.ac.uk>2024-02-22 22:37:34 +0000
committerMartinNowack <2443641+MartinNowack@users.noreply.github.com>2024-02-27 09:45:01 +0000
commit7a640c68ba7517b4a64f2cd684e91bd3de804580 (patch)
tree62388a9dc29e1641016d537b5838fd6b1944c87f /lib/Core/Executor.h
parenta802c6dfd600f81d6131c055685188e0ac08bb9e (diff)
downloadklee-7a640c68ba7517b4a64f2cd684e91bd3de804580.tar.gz
Extend toConstant() to take an additional boolean argument that decides whether the expression is concretised. Also changed a C string argument to std::string.
Diffstat (limited to 'lib/Core/Executor.h')
-rw-r--r--lib/Core/Executor.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/Core/Executor.h b/lib/Core/Executor.h
index d19758d4..7be056a1 100644
--- a/lib/Core/Executor.h
+++ b/lib/Core/Executor.h
@@ -387,14 +387,15 @@ private:
   /// value). Otherwise return the original expression.
   ref<Expr> toUnique(const ExecutionState &state, ref<Expr> &e);
 
-  /// Return a constant value for the given expression, forcing it to
-  /// be constant in the given state by adding a constraint if
+  /// Return a constant value for the given expression.  If \param concretize is
+  /// true, the expression is forced to be a constant by adding a constraint if
   /// necessary. Note that this function breaks completeness and
   /// should generally be avoided.
   ///
-  /// \param purpose An identify string to printed in case of concretization.
-  ref<klee::ConstantExpr> toConstant(ExecutionState &state, ref<Expr> e, 
-                                     const char *purpose);
+  /// \param reason A documentation string stating the reason for concretization
+  ref<klee::ConstantExpr> toConstant(ExecutionState &state, ref<Expr> e,
+                                     const std::string &reason,
+                                     bool concretize = true);
 
   /// Evaluate the given expression under each seed, and return the
   /// first one that results in a constant, if such a seed exist.  Otherwise,