diff options
Diffstat (limited to 'lib/Core/ExecutionState.h')
-rw-r--r-- | lib/Core/ExecutionState.h | 14 |
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; } }; } |