diff options
author | Martin Nowack <m.nowack@imperial.ac.uk> | 2019-03-27 11:33:07 +0000 |
---|---|---|
committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2020-07-01 15:52:40 +0100 |
commit | a1b73df93e5a2fac4a7ac87fb1753c4eb518c8c0 (patch) | |
tree | 878d75da74e7a6ae4a917c41ed482fc5c0ffe3e0 /lib/Solver/ValidatingSolver.cpp | |
parent | f56c7aa2a7200ece5d074651b9839eb917f910f5 (diff) | |
download | klee-a1b73df93e5a2fac4a7ac87fb1753c4eb518c8c0.tar.gz |
Separate constraint set and constraint manager
Diffstat (limited to 'lib/Solver/ValidatingSolver.cpp')
-rw-r--r-- | lib/Solver/ValidatingSolver.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/Solver/ValidatingSolver.cpp b/lib/Solver/ValidatingSolver.cpp index 93d743db..5d4dab39 100644 --- a/lib/Solver/ValidatingSolver.cpp +++ b/lib/Solver/ValidatingSolver.cpp @@ -93,7 +93,7 @@ bool ValidatingSolver::computeInitialValues( if (hasSolution) { // Assert the bindings as constraints, and verify that the // conjunction of the actual constraints is satisfiable. - std::vector<ref<Expr> > bindings; + ConstraintSet bindings; for (unsigned i = 0; i != values.size(); ++i) { const Array *array = objects[i]; assert(array); @@ -107,12 +107,10 @@ bool ValidatingSolver::computeInitialValues( } ConstraintManager tmp(bindings); ref<Expr> constraints = Expr::createIsZero(query.expr); - for (ConstraintManager::const_iterator it = query.constraints.begin(), - ie = query.constraints.end(); - it != ie; ++it) - constraints = AndExpr::create(constraints, *it); + for (auto const &constraint : query.constraints) + constraints = AndExpr::create(constraints, constraint); - if (!oracle->impl->computeTruth(Query(tmp, constraints), answer)) + if (!oracle->impl->computeTruth(Query(bindings, constraints), answer)) return false; if (!answer) assert(0 && "invalid solver result (computeInitialValues)"); |