|
test
|
‘test’: events 1-2
| 8 | void test(void *p) |
| ^~~~ |
| | |
| (1) entry to ‘test’ |
| 9 | { |
| 10 | calls_free(p); |
| ~~~~~~~~~~~~~ |
| | |
| (2) calling ‘calls_free’ from ‘test’ |
|
|
calls_free
|
‘calls_free’: events 3-4
| 3 | static void calls_free(int *q) |
| ^~~~~~~~~~ |
| | |
| (3) entry to ‘calls_free’ |
| 4 | { |
| 5 | free(q); |
| ~~~~~~~ |
| | |
| (4) first ‘free’ here |
|
|
|
‘test’: events 5-6
| 10 | calls_free(p); |
| ^~~~~~~~~~~~~ |
| | |
| (5) returning to ‘test’ from ‘calls_free’ |
| 11 | |
| 12 | free(p); /* { dg-warning "double-'free' of 'p'" } */ |
| ~~~~~~~ |
| | |
| (6) second ‘free’ here; first ‘free’ was at (4) |
|
|