|
outer
|
‘outer’: events 1-5
| 21 | void outer (void) |
| ^~~~~ |
| | |
| (1) entry to ‘outer’ |
| [...] | |
| 27 | i = sigsetjmp(env, 0); /* { dg-message "'sigsetjmp' called here" "event: sigsetjmp call" } */ |
| ~~~~~~~~~~~~~~~~~ |
| | |
| (2) ‘sigsetjmp’ called here |
| [...] | |
| 30 | if (i == 0) |
| ~ |
| | |
| (3) following ‘true’ branch (when ‘i == 0’)... |
| 31 | { |
| 32 | foo (1); |
| ~~~~~~~ |
| | |
| (4) ...to here |
| 33 | inner (); |
| ~~~~~~~~ |
| | |
| (5) calling ‘inner’ from ‘outer’ |
|
|
inner
|
‘inner’: events 6-9
| 11 | static void inner (void) |
| ^~~~~ |
| | |
| (6) entry to ‘inner’ |
| 12 | { |
| 13 | void *ptr = malloc (1024); /* { dg-message "allocated here" } */ |
| ~~~~~~~~~~~~~ |
| | |
| (7) allocated here |
| 14 | |
| 15 | siglongjmp (env, 1); /* { dg-warning "leak of 'ptr'" "warning" } */ |
| ~~~~~~~~~~~~~~~~~~~ |
| | |
| (8) ‘ptr’ leaks here; was allocated at (7) |
| (9) rewinding from ‘siglongjmp’ in ‘inner’... |
|
|
|
‘outer’: event 10
| 27 | i = sigsetjmp(env, 0); /* { dg-message "'sigsetjmp' called here" "event: sigsetjmp call" } */ |
| ^~~~~~~~~~~~~~~~~ |
| | |
| (10) ...to ‘sigsetjmp’ in ‘outer’ (saved at (2)) |
|
|