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
The level 2 version of variable canary in the assertion is not the one in the program equation. At a guess the mechanism keeping track of scopes gets confused by the goto statements that is crossing scope boundaries.
Note: the example originated as an auto-generated C file created by Csmith.
CBMC version: 6.2.0
Operating system: Linux 64
Exact command line resulting in the issue: cbmc --unwind 2 --unwinding-assertions gotos.c
What behaviour did you expect: all assertions should pass
What happened instead: one assertion failed
The text was updated successfully, but these errors were encountered:
A local variable may have left the scope on a branch, but may still
exist via another path. Upon merging paths we must not lose such
objects.
Fixes: diffblue#8437
A local variable may have left the scope on a branch, but may still
exist via another path. Upon merging paths we must not lose such
objects.
Fixes: diffblue#8437
The example file is attached:
gotos.c.txt
The failing assertion is line 15:
assert(canary)
. On all valid execution paths, canary == 1, so the assertion should pass.A look at the program equation shows the problem:
The level 2 version of variable
canary
in the assertion is not the one in the program equation. At a guess the mechanism keeping track of scopes gets confused by the goto statements that is crossing scope boundaries.Note: the example originated as an auto-generated C file created by Csmith.
CBMC version: 6.2.0
Operating system: Linux 64
Exact command line resulting in the issue: cbmc --unwind 2 --unwinding-assertions gotos.c
What behaviour did you expect: all assertions should pass
What happened instead: one assertion failed
The text was updated successfully, but these errors were encountered: