Skip to content
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

Fix base must-writing all invalidated variables #1562

Merged
merged 1 commit into from
Sep 9, 2024
Merged

Conversation

sim642
Copy link
Member

@sim642 sim642 commented Aug 16, 2024

set_many writes one after another, so they all end up in protection privatization's P set for example (although it cannot be observed by precision).
Nevertheless, this is the morally correct thing to do: an unknown function may or may not write each argument.

This issue was revealed by #1531, because deep reachability returns all reachable variables as singleton points-to sets. So when NULL is reachable, it's must-written and it becomes dead code when NULL pointer writes are assumed to not happen. This is unsound because the unknown function only may-writes.
It will be possible to test this difference with #1531.

I checked other analyses and they don't seem to have the same problem. For example, relation/var_eq also invalidate sequentially but they don't invalidate by writing, rather by removing known information.

set_many writes one after another, so they all end up in protection privatization's P set for example (although it cannot be observed by precision).
Nevertheless, this is the morally correct thing to do: an unknown function may or may not write each argument.
@sim642 sim642 added this to the v2.5.0 milestone Sep 9, 2024
@sim642 sim642 merged commit 46f2fbd into master Sep 9, 2024
21 checks passed
@sim642 sim642 deleted the base-invalidate-may branch September 9, 2024 10:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants