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/AssignmentValidatingSolver.cpp | |
parent | f56c7aa2a7200ece5d074651b9839eb917f910f5 (diff) | |
download | klee-a1b73df93e5a2fac4a7ac87fb1753c4eb518c8c0.tar.gz |
Separate constraint set and constraint manager
Diffstat (limited to 'lib/Solver/AssignmentValidatingSolver.cpp')
-rw-r--r-- | lib/Solver/AssignmentValidatingSolver.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/lib/Solver/AssignmentValidatingSolver.cpp b/lib/Solver/AssignmentValidatingSolver.cpp index 7e1ccd38..54d6ec8c 100644 --- a/lib/Solver/AssignmentValidatingSolver.cpp +++ b/lib/Solver/AssignmentValidatingSolver.cpp @@ -63,10 +63,7 @@ bool AssignmentValidatingSolver::computeInitialValues( // we can't compute a constant and flag this as a problem. Assignment assignment(objects, values, /*_allowFreeValues=*/true); // Check computed assignment satisfies query - for (ConstraintManager::const_iterator it = query.constraints.begin(), - ie = query.constraints.end(); - it != ie; ++it) { - ref<Expr> constraint = *it; + for (const auto &constraint : query.constraints) { ref<Expr> constraintEvaluated = assignment.evaluate(constraint); ConstantExpr *CE = dyn_cast<ConstantExpr>(constraintEvaluated); if (CE == NULL) { @@ -124,16 +121,13 @@ void AssignmentValidatingSolver::dumpAssignmentQuery( const Query &query, const Assignment &assignment) { // Create a Query that is augmented with constraints that // enforce the given assignment. - std::vector<ref<Expr> > constraints; - assignment.createConstraintsFromAssignment(constraints); + auto constraints = assignment.createConstraintsFromAssignment(); + // Add Constraints from `query` - for (ConstraintManager::const_iterator it = query.constraints.begin(), - ie = query.constraints.end(); - it != ie; ++it) { - constraints.push_back(*it); - } - ConstraintManager augmentedConstraints(constraints); - Query augmentedQuery(augmentedConstraints, query.expr); + for (const auto &constraint : query.constraints) + constraints.push_back(constraint); + + Query augmentedQuery(constraints, query.expr); // Ask the solver for the log for this query. char *logText = solver->getConstraintLog(augmentedQuery); |