-
Notifications
You must be signed in to change notification settings - Fork 274
goto_checkt: keep same-assertion for different expressions #5845
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
goto_checkt: keep same-assertion for different expressions #5845
Conversation
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.
I'm going with a tentative 'yes'. Assorted thoughts:
- When doing work on how to QA / evaluate / certify program analysis tools, I came to the conclusion that omitting VCs was actually quite a bit worse than simply getting them wrong. If you have a VC and a status then you have a reasonable chance of being able to check that it is correct; there are a bunch of techniques. If you don't have the VC there are many fewer ways of finding that it is missing. As such I am suspicious of anything that removes VCs, even the ones that are "obviously" safe or redundant.
- I am working with a colleague on tracking down missing VCs. This is a much more tedious and harder process than it should be. Let's not have concealed cracks where VCs can just vanish.
- If a VC is trivial then we should still report it, we just need to make sure that it is minimal overhead.
@martin-cs Thank you very much for your elaboration, I fully concur. It seems a further fix is in order: d974aa3 introduced a "retain-trivial" option, but this option was never made available in any command-line parser... |
Purging redundant assertions results in surprising user output as it would seem that certain properties aren't being checked.
7aeee35
to
572a00d
Compare
Such a fix is now included as well. |
In some settings it is desirable to obtain a report of all properties being checked, including those that are trivially true. There used to be an option "all-claims", then renamed to "retain-trivial", but the latter was never made available in command-line front-ends. The option is now renamed to retain-trivial-checks, and made available in all front-ends.
572a00d
to
93bd022
Compare
Codecov Report
@@ Coverage Diff @@
## develop #5845 +/- ##
========================================
Coverage 72.87% 72.88%
========================================
Files 1421 1421
Lines 154181 154217 +36
========================================
+ Hits 112359 112395 +36
Misses 41822 41822
Continue to review full report at Codecov.
|
[Only the second commit is relevant, the first one is #5844 and only required to have the necessary test in place.]Purging redundant assertions results in surprising user output as it would seem that certain properties aren't being checked.