-
Notifications
You must be signed in to change notification settings - Fork 287
Closed
Description
Supose we do path exploration on this program
int main()
{
int x;
if(x)
assert(0);
else
assert(0);
}by running
cbmc --paths lifo /tmp/foo.c
the output indicates that both paths were explored. However, in each case, the assertion on the other path is printed as being successful, even though it clearly fails, because that path was not the one currently under consideration:
...
** Results:
[main.assertion.1] assertion 0: SUCCESS
[main.assertion.2] assertion 0: FAILURE
** 1 of 2 failed (2 iterations)
VERIFICATION FAILED
___________________________
Starting new path (1 to go)
...
** Results:
[main.assertion.1] assertion 0: FAILURE
[main.assertion.2] assertion 0: SUCCESS
** 1 of 2 failed (2 iterations)
VERIFICATION FAILED
we should not print a spurious SUCCESS result for assertions that lie on a path that we're not currently exploring.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels