-
Notifications
You must be signed in to change notification settings - Fork 26
Update to CBMC 5.8 #149
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
Update to CBMC 5.8 #149
Conversation
786bb10
to
8db2947
Compare
8db2947
to
0e31302
Compare
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.
LGTM
Prerequisites have been merged. Please rebase.
src/2ls/2ls_parse_options.h
Outdated
"(no-spurious-check)(stop-on-fail)" \ | ||
"(competition-mode)(slice)(no-propagation)(independent-properties)" \ | ||
"(no-unwinding-assertions)" | ||
"(constant-propagation)(no-unwinding-assertions)" |
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.
⛏️ put each declaration on a separate line to reduce merge conflicts in future.
Workaround final keyword in dstringt. Update c_types.h header path. Avoid use of goto_functiont copy constructor. Fix moved attributes from goto_trace_stept to goto_trace_stept::typet. Replace deprecated integer_constant. Fix checking decision_proceduret result. Fix missing ID__start. Fix checking against ui_message_handlert attributes. Fix checking property_checkert result. Fix deprecated status() call. Add message_handler to remove_function_pointers. Fix smt2_convt::Z3 attribute location. Fix unwinding strategy specification. Do not propagate message_handler when it is NULL. Fix SSA assert construction. - CBMC 5.8 added FALSE || to the beginning of instrumented assertions which revealed a flaw in how the assertions were constructed in 2LS. Make the approach more general, recursively going through the whole assertion. Fix CPROVER entrypoint. Remove typedef from test to make it consistent. - Messages from CBMC now contain the typedef instead of the typedef-ed structure, remove typedefs in tests to avoid inconsistencies. Signed-off-by: František Nečas <[email protected]>
This is a temporary commit, constant propagation is broken in CBMC 5.8 (constants are propagated when they should not) which results in incorrect 2LS behaviour. Signed-off-by: František Nečas <[email protected]>
Signed-off-by: František Nečas <[email protected]>
0e31302
to
2411949
Compare
Fixed, rebased and squashed, should be ready for merging. |
I will merge this PR similarly to the last one, this time in 3 commits - all the necessary fixes, commit 770d349 (so that we can easily revert it once propagation is fixed) and commit updating version.
Related: peterschrammel/cbmc#22
Changes
FALSE || <assertion>
, this required fixes in a0f6f5f to make memsafety work.