-
Notifications
You must be signed in to change notification settings - Fork 102
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
[SMT] fix pointer typecast for byte update #2197
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.
Thanks for submitting this PR, @XLiZHI.
I have added a few comments to clarify the code.
Can you also run this PR over the SV-COMP benchmarks?
Master:
This PR:
|
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.
@XLiZHI: I have just checked this patch on the code:
ESBMC still gives The reduced version provided by @rafaelsamenezes misses something else in this example. We'll have to investigate it further as part of another PR. |
I did a quick check and here's the problem:
It's SSA:
I think it should be:
|
Thanks for submitting this PR, @XLiZHI. Can I ask you to submit a separate PR to handle the Intel benchmark case? |
For this code:
Nondet pointer breaks byte update, see details: #2153 (comment)
We take into account the constraint, the counterexample to
bar != &some_var
isbar == &some_var
, i.e.byte_update_little_endian(bar, 0, symex::nondet1) == &some_var
====> bar = &some_var