-
Notifications
You must be signed in to change notification settings - Fork 274
Do not generate enum-value checks for function call left-hand sides #6594
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
Merged
tautschnig
merged 4 commits into
diffblue:develop
from
tautschnig:bugfixes/6586-enum-check
Feb 7, 2022
Merged
Do not generate enum-value checks for function call left-hand sides #6594
tautschnig
merged 4 commits into
diffblue:develop
from
tautschnig:bugfixes/6586-enum-check
Feb 7, 2022
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced Jan 19, 2022
e325e86
to
c78b8b4
Compare
Codecov Report
@@ Coverage Diff @@
## develop #6594 +/- ##
===========================================
+ Coverage 76.72% 76.73% +0.01%
===========================================
Files 1579 1579
Lines 181938 181999 +61
===========================================
+ Hits 139587 139652 +65
+ Misses 42351 42347 -4
Continue to review full report at Codecov.
|
TGWDB
approved these changes
Jan 20, 2022
danielsn
reviewed
Jan 27, 2022
6c7034f
to
e746171
Compare
chrisr-diffblue
approved these changes
Jan 28, 2022
d4a3707
to
318b31f
Compare
We should not have to fall back to irept pretty printing for these.
We already disabled these checks for assignment left-hand sides, but need to do the same for function calls. Else we'd be asserting validity before the value has been assigned. Fixes: diffblue#6586, diffblue#6451 Co-authored-by: Ilia Levin <[email protected]>
The assertions generated by --enum-range-check must not apply to the expansion of __CPROVER_enum_is_in_range, for those would assert exactly the same. Also, those expressions are rather costly: for N enum values, N assertions would be generated.
Disjunctions over equalities of integer constants can be rewritten as closed intervals. This will most commonly appear when expanding enum_is_in_range. This also surfaced a bug in to_integer, which used the wrong type reference.
318b31f
to
7e0f829
Compare
peterschrammel
approved these changes
Feb 7, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We already disabled these checks for assignment left-hand sides, but
need to do the same for function calls. Else we'd be asserting validity
before the value has been assigned.
Fixes: #6586
Co-authored-by: Ilia Levin [email protected]