-
Notifications
You must be signed in to change notification settings - Fork 274
Constant propagation for individual fields through byte extract #6856
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
Constant propagation for individual fields through byte extract #6856
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #6856 +/- ##
===========================================
- Coverage 77.81% 77.79% -0.02%
===========================================
Files 1568 1568
Lines 179975 180039 +64
===========================================
+ Hits 140044 140065 +21
- Misses 39931 39974 +43
Continue to review full report at Codecov.
|
0a8e99d
to
6907f89
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.
Generally happy to approve this on the basis that it improves the constant propagation and the "failing" tests are (as discussed in #6101) doing things that are not necessarily well defined.
7f0b372
to
c36bd85
Compare
8 seconds seemed arbitrary, and we have now seen a failure on one platform, which might be just down to jitter. Increase the timeout to 15 seconds, which should be plenty.
The option --no-simplify should be honoured by field sensitivity. This also made apparent that we have tests that only pass thanks to the simplifier, and perhaps aren't even expected to pass. See diffblue#6101 for further discussion.
Field sensitivity in goto symex updates the full object as well as individual fields for divisible objects. The updates of individual fields, however, previously used index or member expressions on that full object. Consequently, constant propagation was only possible when the full-object assignment had a constant as the right-hand side. In some cases, however, only parts of the whole object might be constant. We are now able to constant propagate the fields covering those (constant) parts. Fixes: diffblue#6846
c36bd85
to
6193534
Compare
Field sensitivity in goto symex updates the full object as well as
individual fields for divisible objects. The updates of individual
fields, however, previously used index or member expressions on that
full object. Consequently, constant propagation was only possible when
the full-object assignment had a constant as the right-hand side. In
some cases, however, only parts of the whole object might be constant.
We are now able to constant propagate the fields covering those
(constant) parts.
Fixes: #6846