| 
  
 outer 
  | 
     ‘outer’: event 1 
|    19 | void outer (void) |  
 |      ^~~~~ |  
 |      | |  
 |      (1) entry to ‘outer’ |  
 
 |   
  | 
     ‘outer’: event 2 
|    25 |   i = SETJMP(env); |  
 |       ^~~~~~ |  
 |       | |  
 |       (2) ‘setjmp’ called here |  
 
 |   
  | 
     ‘outer’: events 3-5 
|    27 |   if (i != 0) |  
 |      ^ |  
 |      | |  
 |      (3) following ‘false’ branch (when ‘i == 0’)... |  
| [...] |  |  
|    34 |       foo (1); |  
 |       ~~~~~~~ |  
 |       | |  
 |       (4) ...to here |  
|    35 |       inner (); |  
 |       ~~~~~~~~ |  
 |       | |  
 |       (5) calling ‘inner’ from ‘outer’ |  
 
 |   
   | 
  
 inner 
  | 
     ‘inner’: events 6-7 
|    13 | static void inner (void) |  
 |             ^~~~~ |  
 |             | |  
 |             (6) entry to ‘inner’ |  
| [...] |  |  
|    16 |   longjmp (env, 0); |  
 |   ~~~~~~~~~~~~~~~~ |  
 |   | |  
 |   (7) rewinding from ‘longjmp’ in ‘inner’... |  
 
 |   
 |   
  | 
     ‘outer’: event 8 
|    25 |   i = SETJMP(env); |  
 |       ^~~~~~ |  
 |       | |  
 |       (8) ...to ‘setjmp’ in ‘outer’ (saved at (2)) |  
 
 |   
  | 
     ‘outer’: events 9-11 
|    27 |   if (i != 0) |  
 |      ^ |  
 |      | |  
 |      (9) following ‘true’ branch (when ‘i != 0’)... |  
|    28 |     { |  
|    29 |       foo (2); |  
 |       ~~~~~~~ |  
 |       | |  
 |       (10) ...to here |  
|    30 |       __analyzer_dump_path (); /* { dg-message "path" } */ |  
 |       ~~~~~~~~~~~~~~~~~~~~~~~ |  
 |       | |  
 |       (11) here |  
 
 |   
 |