-
Notifications
You must be signed in to change notification settings - Fork 273
Bugfix: Maintain safe_pointers per-path #2879
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
Bugfix: Maintain safe_pointers per-path #2879
Conversation
58db2a1
to
0c9f069
Compare
1e867b6
to
bd42010
Compare
regression/cbmc-path/Makefile
Outdated
@@ -0,0 +1,19 @@ | |||
default: tests.log |
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.
Please add this directory to regression/Makefile
and regression/CMakeLists.txt
-- although I'm not sure a new directory is strictly required, it might be safe to include that test in the cbmc/ folder?
bd42010
to
122f0a9
Compare
The map of safe pointers is now maintained separately for each path, ensuring that pointer accesses on one path do not influence a (lack of) pointer accesses on a different path. This commit fixes diffblue#2866, a segfault that would happen when running CBMC on the included regression test.
122f0a9
to
959c7a5
Compare
@tautschnig thanks, I moved the test over to |
Sorry this comment is late, just getting back from holiday. This doesn't make sense to me currently, as the safe-pointers analysis isn't path sensitive-- this is a very local analysis looking for accesses trivially dominated by checks. The result should therefore always be the same, hence keeping them globally. It should have the same usage pattern as dirtyt in this respect. So what's going on here? |
I'm actually not sure about this. As far as I can see, values are only added to that map in two places in the codebase ( However, note that |
The map of safe pointers is now maintained separately for each path,
ensuring that pointer accesses on one path do not influence a (lack of)
pointer accesses on a different path.
This commit fixes #2866, a segfault that would happen when running CBMC
on the included regression test.