Open
Description
CBMC returns VERIFICATION SUCCESSFUL for the following program, although the assertion can fail.
void main()
{
int *x = malloc(sizeof(int));
free(x);
int *y = malloc(sizeof(int));
if(x == y) {
// should be reachable
assert(0);
}
free(y);
}
CBMC's object encoding assumes that malloc never returns the same address.