|
test
‘test’: events 1-2
20 | void test (void *ptr) /* { dg-message "\\(1\\) entry to 'test'" } */ |
| ^~~~ |
| | |
| (1) entry to ‘test’ |
[...] | |
24 | calls_free (ptr); /* { dg-message "\\(2\\) calling 'calls_free' from 'test'" "event 2" } */ |
| ~~~~~~~~~~~~~~~~ |
| | |
| (2) calling ‘calls_free’ from ‘test’ |
|
|
calls_free
‘calls_free’: events 3-4
4 | calls_free (void *victim) /* { dg-message "\\(3\\) entry to 'calls_free'" "event 3" } */ |
| ^~~~~~~~~~ |
| | |
| (3) entry to ‘calls_free’ |
[...] | |
7 | free (victim); /* { dg-warning "double-'free' of 'victim'" "warning" } */ |
| ~~~~~~~~~~~~~ |
| | |
| (4) first ‘free’ here |
|
|
‘test’: events 5-6
24 | calls_free (ptr); /* { dg-message "\\(2\\) calling 'calls_free' from 'test'" "event 2" } */ |
| ^~~~~~~~~~~~~~~~ |
| | |
| (5) returning to ‘test’ from ‘calls_free’ |
[...] | |
29 | calls_free (ptr); /* { dg-message "\\(6\\) passing freed pointer 'ptr' in call to 'calls_free' from 'test'" } */ |
| ~~~~~~~~~~~~~~~~ |
| | |
| (6) passing freed pointer ‘ptr’ in call to ‘calls_free’ from ‘test’ |
|
|
calls_free
‘calls_free’: events 7-8
4 | calls_free (void *victim) /* { dg-message "\\(3\\) entry to 'calls_free'" "event 3" } */ |
| ^~~~~~~~~~ |
| | |
| (7) entry to ‘calls_free’ |
[...] | |
7 | free (victim); /* { dg-warning "double-'free' of 'victim'" "warning" } */ |
| ~~~~~~~~~~~~~ |
| | |
| (8) second ‘free’ here; first ‘free’ was at (4) |
|
|
|