|
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)) |
|
|