Bug path
‘test’
:
events 1-2
10
void test (void *q)
^~~~
|
(1) entry to ‘test’
11
{
12
calls_free (q);
~~~~~~~~~~~~~~
|
(2) calling ‘calls_free’ from ‘test’
‘calls_free’
:
events 3-4
5
void calls_free (void *p)
^~~~~~~~~~
|
(3) entry to ‘calls_free’
6
{
7
free (p); /* { dg-warning "double-'free' of 'p'" } */
~~~~~~~~
|
(4) first ‘free’ here
‘test’
:
events 5-6
12
calls_free (q);
^~~~~~~~~~~~~~
|
(5) returning to ‘test’ from ‘calls_free’
13
calls_free (q);
~~~~~~~~~~~~~~
|
(6) passing freed pointer ‘q’ in call to ‘calls_free’ from ‘test’
‘calls_free’
:
events 7-8
5
void calls_free (void *p)
^~~~~~~~~~
|
(7) entry to ‘calls_free’
6
{
7
free (p); /* { dg-warning "double-'free' of 'p'" } */
~~~~~~~~
|
(8) second ‘free’ here; first ‘free’ was at (4)