-
Notifications
You must be signed in to change notification settings - Fork 269
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
Discrepancy between CBMC versions #7462
Comments
I wouldn't expect a GOTO file to be portable between versions. They are pretty much a dump of the internal data structure so if anything changes between versions they will be incorrectly formed. Treat them like Would you mind running the whole tool chain for each version and see if the results differ? |
Makes sense. I'm still seeing the discrepancy though when starting from the symbol table file generated by Kani (attached) using the following command sequence:
where |
Thanks for doing this; it rules out a few issues. This will need a closer look. |
Bisecting showed that union field sensitivity (50dbf7e) introduced this spurious result. I will debug to figure out what might be going on here. |
When applying field sensitivity to an expression we must expand all levels. In the included test we previously constructed a member symbol (`var_11..value`) as right-hand side that still was of struct type. Instead, we must create a struct expression composed of all its members (here: `{ var_11..value.._0 }`). Also, we must not keep nested expandable members in the propagation map for phi nodes don't merge on them. Fixes: diffblue#7462
When applying field sensitivity to an expression we must expand all levels. In the included test we previously constructed a member symbol (`var_11..value`) as right-hand side that still was of struct type. Instead, we must create a struct expression composed of all its members (here: `{ var_11..value.._0 }`). Also, we must not keep nested expandable members in the propagation map for phi nodes don't merge on them. Fixes: diffblue#7462
CBMC version: 5.70.0, 5.71.0
Operating system: Ubuntu 20.04
Exact command line resulting in the issue:
cbmc s2n_quic_core-8f24532ce3fa20f6.for-packet-number-kani_round_trip.out
The results differs between CBMC 5.70 and CBMC 5.71 on the attached goto binary.
CBMC 5.70.0:
CBMC 5.71.0:
The result of CBMC 5.72.0 is identical to that of 5.71.0.
s2n_quic_core-8f24532ce3fa20f6.for-packet-number-kani_round_trip.out.tar.gz
The text was updated successfully, but these errors were encountered: