You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CBMC marks the followong program as safe when run with "-D NONDET_INDEX", which is incorrect. The assertion should fail for index=0, and CBMC works as expected if it is set statically.
There are two bits that are happening here: 1) an object that has gone out-of-scope is chosen to be assigned to and 2) a phi-node is generated on that same object. The former ought to be optimised away, and the latter should certainly never be done (even though a direct consequence of the former). I'm working on fixes.
Pointer dereferencing may yield objects that have meanwhile gone out of scope.
Assigning to them is unnecessary, and performing a merge on those would yield
inconsistent equations (as witnessed by the included regression test).
Filtering out the merge in phi nodes is not easily possible as there are several
cases where it is permissible that only one of the states entering the phi node
has an (L1) object, such as declarations only seen in one branch.
Fixes: diffblue#1115
CBMC marks the followong program as safe when run with "-D NONDET_INDEX", which is incorrect. The assertion should fail for
index=0
, and CBMC works as expected if it is set statically.C program:
VCC (nondet index case):
CBMC Version:
32b68ce
The text was updated successfully, but these errors were encountered: