Bug path

outer
‘outer’: events 1-5
21void 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
11static 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))