-
Notifications
You must be signed in to change notification settings - Fork 273
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
Permit re-setting --object-bits #7858
Permit re-setting --object-bits #7858
Conversation
951b6ce
to
2a9ccc9
Compare
2a9ccc9
to
cf98d57
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #7858 +/- ##
===========================================
- Coverage 78.38% 78.34% -0.05%
===========================================
Files 1720 1720
Lines 187982 188100 +118
Branches 18474 18508 +34
===========================================
+ Hits 147346 147358 +12
- Misses 40636 40742 +106 ☔ View full report in Codecov by Sentry. |
The title of the PR is a bit misleading -- this moves the setting of object bits from goto-cc (or the front-end) to the solver. This is the right thing to do (the only better thing is to get rid of object bits altogether). This is a change of user-visible behaviour, and needs to be advertised appropriately. |
cf98d57
to
dbe9264
Compare
I'm all up for changing the title -- I just thought a key problem that, with the previous implementation, GOTO binaries had their object bits firmly set. Now, one can use different values with
Yes, this is user-visible -- but we hadn't really documented that undesirable need of setting |
After the change, is it still possible to set object-bits via goto-cc? If not, then it's moving!
It may be helpful for users to keep a note in the man page for a while, saying that the option is now given to |
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.
The small amount that touched things I am "owner" for seems to be correctly implemented. As I understand it this should be a back-end option so yes, setting it in cbmc
not goto-cc
makes sense.
dbe9264
to
549b3e4
Compare
I have now added a section "BACKWARD COMPATIBILITY" to the man page. |
@tautschnig The regression tests for this PR should pass, once it is based on top of - #8104 |
045c685
to
98d3df5
Compare
Rebased, thank you very much for the very quick fix!! |
CSmith test failure is down to a fix in our CSmith script being required since #8093 has been merged. |
98d3df5
to
a588dd4
Compare
Configure the number of bits used for object numbering in CBMC's pointer encoding. | ||
.SH BACKWARD COMPATIBILITY | ||
.B goto\-cc | ||
will warn and ignore the use of \fB\-\-object\-bits\fR, which previous versions |
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.
❓ Where is this warning produced in this PR? Or does that already exist?
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.
goto-cc warns about all options that it doesn't explicitly know about, so by virtue of removing it from gcc_cmdline.cpp
we get this.
f0a795c
to
8b953f4
Compare
This is to make sure that that re-creating initialisation functions restores non-deterministic values.
Support choosing the number of object bits to be used by CBMC at runtime even with pre-compiled goto binaries. Update the goto-cc section in the CPROVER manual to remove any documentation of object-bits (it remains documented in the "Memory and pointers in CBMC" section). Fixes: diffblue#5443
The object:offset encoding is an implementation detail that should be private to the back-end. Expression simplification must not rely on such details. Partly reverts 4d35274.
This test appears to take several hours when running on Windows in GitHub's CI.
8b953f4
to
97e2439
Compare
Support choosing the number of object bits to be used by CBMC at runtime even with pre-compiled goto binaries.
Fixes: #5443