-
Notifications
You must be signed in to change notification settings - Fork 41
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
Bug: unnecessary UNKNOWN for bitwiseAnd/bitwiseOr #658
Comments
This is expected. We can model the C-program by using mathematical and unbounded integers (integer translation), but then we loose the bitprecise information. Therefore we cannot handle bitwise precisely in general, but we have try to be as precise as possible for several cases. For example But you are right in the way that this overapproximation here is unnecessary. The error found is an actual error, because it does not even use the possibly imprecise value of the bitprecise operations. In general this detection might be slightly more complicated, but this is someting we are currently working on. |
Alright, thanks for clarification. |
@FahrJo Did you try it with bitvector translation? |
I just tried with the cacsl2boogietranslator setting |
This is not the correct setting, use |
I just found this, @schuessf. Unfortunately this throws an exception:
|
Oh, yes, this requires to change some other settings as well. I think the best idea is just to load predefined settings (for example |
Ok, after adding the suggested settings for the traceabstraction, everything works. I leave the issue open though, since the overapproximation here is unnecessary anyways. I adjusted the issue title. |
Basic Info
Description
Ultimate fails to prove the program to be incorrect and returns unknown:
I cannot explain myself, why those simple bitwise AND/OR operations should cause a problem. Is this reasonable?
The text was updated successfully, but these errors were encountered: