-
Notifications
You must be signed in to change notification settings - Fork 73
--detect-vacuity doesn't work with the MIR backend #2028
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
Here is a test case: // test.c
void fun_c() {} // test.rs
pub fn fun_rs() {}
Note that SAW prints |
The reason this happens is because saw-script/src/SAWScript/Crucible/LLVM/Builtins.hs Lines 638 to 639 in 2a3ca89
The MIR backend (as well as the JVM backend) simply don't perform this check. Most of the code in the saw-script/src/SAWScript/Crucible/LLVM/Builtins.hs Lines 1030 to 1042 in 2a3ca89
We'd need to perform some mild refactoring to get rid of the |
Pull request: resolves this. I added an a java version of the test case given above:
and appended this to test.saw:
and I see
|
- Removed LLVM proof from test2028_vacuity_detect since vacuity detection for LLVM is already covered by test0064. - Fixed quoting of $SAW in test.sh to allow proper execution via test runner. Related to GaloisInc#2028.
saw --detect-vacuity foo.saw doesn't detect unsatisfiable preconditions (such as a == 0 /\ b == 1 /\ a == b) when using the MIR (Rust) backend.
The text was updated successfully, but these errors were encountered: