-
Notifications
You must be signed in to change notification settings - Fork 274
Correctly handle SMT solver errors in loop acceleration code #5948
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Correctly handle SMT solver errors in loop acceleration code #5948
Conversation
72c0f7d
to
7f7806b
Compare
Build failures would be resolved after fa657ac is merged. |
7f7806b
to
1c941a8
Compare
Codecov Report
@@ Coverage Diff @@
## develop #5948 +/- ##
===========================================
+ Coverage 74.24% 75.01% +0.77%
===========================================
Files 1431 1431
Lines 155290 155281 -9
===========================================
+ Hits 115290 116485 +1195
+ Misses 40000 38796 -1204
Continue to review full report at Codecov.
|
1c941a8
to
760bfc1
Compare
@kroening @thomasspriggs I have addressed your comments now. Could you please take another look? Thanks. |
760bfc1
to
c0b731c
Compare
`check_sat` in scratch_programt was treating UNSAT and ERROR as the same. This was causing SMT solver errors to be silently ignored, and be treated as UNSAT results instead.
c0b731c
to
449cab0
Compare
switch((*checker)()) | ||
{ | ||
case decision_proceduret::resultt::D_ERROR: | ||
throw "error running the SMT solver"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a structure exception you could throw instead of a raw string?
Related to #5944 and #5947.
This PR correctly handles SMT solver failures in loop acceleration routines. Earlier these errors were silently ignored, and were being treated as UNSAT.
The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/My commit message includes data points confirming performance improvements (if claimed).White-space or formatting changes outside the feature-related changed lines are in commits of their own.