-
Notifications
You must be signed in to change notification settings - Fork 273
Simplifier: c_bool (and others) are also bitvector types #8247
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #8247 +/- ##
===========================================
- Coverage 78.32% 78.32% -0.01%
===========================================
Files 1721 1721
Lines 188210 188243 +33
Branches 18462 18517 +55
===========================================
+ Hits 147416 147435 +19
- Misses 40794 40808 +14 ☔ View full report in Codecov by Sentry. |
Can we test this somehow? The simplifier may be a good use-case for unit tests. |
1be9830
to
c9bcfce
Compare
Done! |
Remove simplifier's own is_bitvector_type in favour of using can_cast_type<bitvector_typet>, which will make sure that expressions like bitxor(false, false) over c_bool types gets simplified. Such expressions were seen in Kani (the C front-end would promote bitxor operands to int, and, therefore, not end up in this code path).
c9bcfce
to
a697de0
Compare
CBMC v6 includes diffblue/cbmc#8247, which fixes the need for unwind attributes that were newly found to be necessary when upgrading to nightly-2024-03-15 (model-checking#3084). Resolves: model-checking#3088
CBMC v6 includes diffblue/cbmc#8247, which fixes the need for unwind attributes that were newly found to be necessary when upgrading to nightly-2024-03-15 (#3084). Resolves: #3088
Remove simplifier's own is_bitvector_type in favour of using can_cast_type<bitvector_typet>, which will make sure that expressions like bitxor(false, false) over c_bool types gets simplified. Such expressions were seen in Kani (the C front-end would promote bitxor operands to int, and, therefore, not end up in this code path).