-
Notifications
You must be signed in to change notification settings - Fork 273
reachability-slice
changes verification from FAILED to SUCCESSFUL
#6394
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
Comments
Not sure if these are related, but there is another (super old) issue about |
Attaching another example where I'm observing similar behavior with CBMC version 5.36.0: Steps to reproduce:
|
We also need to review the use of "--slice-global-inits" as that is part of the starter-kit |
Reachability slicing relies on the CFG. The CFG, however, will not contain edges from a function call to the next instruction when no body is available for the function call. Therefore, reachability slicing requires two steps: - The model library needs to be applied. CBMC already did so, goto-instrument now does with this commit. - Remaining function calls without body need to be replaced by nondet-return-value assignments. Fixes: diffblue#6394
The issue (in both examples provided) were functions the body of which was not available. #6505 addresses this issue. |
Reachability slicing relies on the CFG. The CFG, however, will not contain edges from a function call to the next instruction when no body is available for the function call. Therefore, reachability slicing requires two steps: - The model library needs to be applied. CBMC already did so, goto-instrument now does with this commit. - Remaining function calls without body need to be replaced by nondet-return-value assignments. Fixes: diffblue#6394
Reachability slicing relies on the CFG. The CFG, however, will not contain edges from a function call to the next instruction when no body is available for the function call. Therefore, reachability slicing requires two steps: - The model library needs to be applied. CBMC already did so, goto-instrument now does with this commit. - Remaining function calls without body need to be replaced by nondet-return-value assignments. Fixes: diffblue#6394
CBMC version: 5.40.0 (0cdc654) with PR 6376 and 5.31.0
Operating system: Both Ubuntu 20 and macOS 11.6 (20G165)
Exact command line resulting in the issue:
The issue seems to be this function goes from nontrivial to an
assume(0)
despite being reachable:to
What behaviour did you expect: same result
What happened instead: verification result changes
Binaries included here, apologies that they are large, so far unable to replicate on a minimal example:
reachability-slice-bug.zip
The text was updated successfully, but these errors were encountered: