about summary refs log tree commit diff homepage
path: root/lib/Core/ExecutionState.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Core/ExecutionState.h')
-rw-r--r--lib/Core/ExecutionState.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/Core/ExecutionState.h b/lib/Core/ExecutionState.h
index 91a5a9f9..0af3c336 100644
--- a/lib/Core/ExecutionState.h
+++ b/lib/Core/ExecutionState.h
@@ -235,9 +235,6 @@ public:
   /// @ brief Environment variable for runtime metaprogram switching.
   std::string metaEnvVar = "";
 
-  /// @ brief Terminated on exit, awaiting comparison.
-  std::string formula = "";
-
   /// @brief The numbers of times this state has run through Executor::stepInstruction
   std::uint64_t steppedInstructions = 0;
 
@@ -309,9 +306,16 @@ struct ExecutionStateIDCompare {
   }
 };
 
-struct ExecutionStateFormulaCompare {
+struct ExecutionStatePathCondCompare {
   bool operator()(const ExecutionState *a, const ExecutionState *b) const {
-    return a->formula < b->formula;
+    if (a->constraints == b->constraints)
+      return false;
+    if (a->constraints.size() != b->constraints.size())
+      return a->constraints.size() < b->constraints.size();
+    for (ConstraintSet::constraint_iterator i = a->constraints.begin(),
+           j = b->constraints.begin();
+         i < a->constraints.end() && j < b->constraints.end(); ++i, ++j)
+      return *i < *j;
   }
 };
 }