Skip to content

Commit 8cfcfdb

Browse files
authored
Merge pull request #5948 from padhi-aws-forks/acceleration_smt_fix
Correctly handle SMT solver errors in loop acceleration code
2 parents efc313d + 449cab0 commit 8cfcfdb

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/goto-instrument/accelerate/scratch_program.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,21 @@ bool scratch_programt::check_sat(bool do_slice, guard_managert &guard_manager)
7171
std::cout << "Finished symex, invoking decision procedure.\n";
7272
#endif
7373

74-
return ((*checker)() == decision_proceduret::resultt::D_SATISFIABLE);
74+
switch((*checker)())
75+
{
76+
case decision_proceduret::resultt::D_ERROR:
77+
throw "error running the SMT solver";
78+
79+
case decision_proceduret::resultt::D_SATISFIABLE:
80+
return true;
81+
82+
case decision_proceduret::resultt::D_UNSATISFIABLE:
83+
return false;
84+
85+
UNREACHABLE;
86+
}
87+
88+
UNREACHABLE;
7589
}
7690

7791
exprt scratch_programt::eval(const exprt &e)

0 commit comments

Comments
 (0)