-
Notifications
You must be signed in to change notification settings - Fork 271
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
Value-set based dereferencing: fix simplified handling of *(p + i) #8578
Value-set based dereferencing: fix simplified handling of *(p + i) #8578
Conversation
1447e14
to
4a44dd6
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #8578 +/- ##
===========================================
- Coverage 78.71% 78.65% -0.06%
===========================================
Files 1732 1732
Lines 199536 199673 +137
Branches 18281 18244 -37
===========================================
- Hits 157057 157056 -1
- Misses 42479 42617 +138 ☔ View full report in Codecov by Sentry. |
4a44dd6
to
d6de37e
Compare
The commit adds a new argument |
d6de37e
to
f6fdf26
Compare
@kroening Reworked as discussed. |
Value-set based dereferencing must not take an access path through an object that precludes a subsequent index expression from accessing a different part of the object. Such a situation can arise when the value set has a known (constant) offset for the pointer that would identify one particular element in an array (within that object). The code using value-set based dereferencing, however, may be trying to resolve a subexpression of an index expression, where said index expression would lead to a different element that may itself be part of a different array within the same overall object. Fixes: diffblue#8570
The outer decision already ensures that types match, so replacing types cannot be necessary.
f6fdf26
to
164407f
Compare
Value-set based dereferencing must not take an access path through an object that precludes a subsequent index expression from accessing a different part of the object. Such a situation can arise when the value set has a known (constant) offset for the pointer that would identify one particular element in an array (within that object). The code using value-set based dereferencing, however, may be trying to resolve a subexpression of an index expression, where said index expression would lead to a different element that may itself be part of a different array within the same overall object.
Fixes: #8570