Skip to content

Commit

Permalink
Mark dummy objects as deallocated
Browse files Browse the repository at this point in the history
  • Loading branch information
Remi Delmas committed Jan 14, 2025
1 parent 2d8ab18 commit 9facabc
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/ansi-c/library/cprover_contracts.c
Original file line number Diff line number Diff line change
Expand Up @@ -1207,14 +1207,17 @@ __CPROVER_HIDE:;
if(__VERIFIER_nondet___CPROVER_bool())
{
// in the failure case, make pointer null or pointing to a unique
// dummy object of size 0.
// dummy deallocated object of size 0.
if(__VERIFIER_nondet___CPROVER_bool())
{
*elem = (void *)0;
}
else
{
*elem = __CPROVER_allocate(0, 0);
void *dummy = __CPROVER_allocate(0, 0);
__CPROVER_deallocated =
__VERIFIER_nondet___CPROVER_bool() ? dummy : __CPROVER_deallocated;
*elem = dummy;
}
return 0;
}
Expand Down Expand Up @@ -1274,14 +1277,17 @@ __CPROVER_HIDE:;
if(__VERIFIER_nondet___CPROVER_bool())
{
// in the failure case, make pointer null or pointing to a unique
// dummy object of size 0.
// dummy deallocated object of size 0.
if(__VERIFIER_nondet___CPROVER_bool())
{
*elem = (void *)0;
}
else
{
*elem = __CPROVER_allocate(0, 0);
void *dummy = __CPROVER_allocate(0, 0);
__CPROVER_deallocated =
__VERIFIER_nondet___CPROVER_bool() ? dummy : __CPROVER_deallocated;
*elem = dummy;
}
return 0;
}
Expand Down Expand Up @@ -1387,14 +1393,17 @@ __CPROVER_HIDE:;
if(__VERIFIER_nondet___CPROVER_bool())
{
// in the failure case, make pointer null or pointing to a unique
// dummy object of size 0.
// dummy deallocated object of size 0.
if(__VERIFIER_nondet___CPROVER_bool())
{
*ptr = (void *)0;
}
else
{
*ptr = __CPROVER_allocate(0, 0);
void *dummy = __CPROVER_allocate(0, 0);
__CPROVER_deallocated =
__VERIFIER_nondet___CPROVER_bool() ? dummy : __CPROVER_deallocated;
*ptr = dummy;
}
return 0;
}
Expand Down

0 comments on commit 9facabc

Please sign in to comment.