1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
int f(/*@only@*/ int *x, /*@only@*/ int *y, /*@only@*/ int *z, /*@only@*/ int *z2)
{
if (3 > 4)
{
free (x);
} /* 1. Variable x is released in true branch, but live in continuation. */
while (3 < 4)
{
free (y);
} /* 2. Variable y is released in while body, but live if loop is not taken. */
if (3 > 4)
{
free (z);
}
else
{
free (z2);
} /* 3. Variable z2 is released in false branch, but live in true branch. */
/* 4. Variable z is released in true branch, but live in false branch. */
return 3;
}
|