| 
                
                   
                    outer
                   
                  
                    
                      | 
                         outer: events 1-4 
                        
                          
                            |    16 |   | outer () |  
                            |       |   | ^~~~~ |  
                            |       |   | | |  
                            |       |   | (1) entry to ‘outer’
  |  
                            |    17 |   | { |  
                            |    18 |   |   int i; |  
                            |       |   |       ~ |  
                            |       |   |       | |  
                            |       |   |       (2) region created on stack here |  
                            |       |   |       (3) capacity: 4 bytes |  
                            |    19 |   |   return middle (&i); |  
                            |       |   |          ~~~~~~~~~~~ |  
                            |       |   |          | |  
                            |       |   |          (4) calling ‘middle’ from ‘outer’
  |  
                          
                         
                       | 
                     
                   
                  
                    
                       | 
                      
                         
                          middle
                         
                        
                          
                            | 
                               middle: events 5-6 
                              
                                
                                  |    10 |   | middle (int *q) |  
                                  |       |   | ^~~~~~ |  
                                  |       |   | | |  
                                  |       |   | (5) entry to ‘middle’
  |  
                                  |    11 |   | { |  
                                  |    12 |   |   return inner (q); |  
                                  |       |   |          ~~~~~~~~~ |  
                                  |       |   |          | |  
                                  |       |   |          (6) calling ‘inner’ from ‘middle’
  |  
                                
                               
                             | 
                           
                         
                        
                          
                             | 
                            
                               
                                inner
                               
                              
                                
                                  | 
                                     inner: events 7-8 
                                    
                                      
                                        |     4 |   | inner (int *p) |  
                                        |       |   | ^~~~~ |  
                                        |       |   | | |  
                                        |       |   | (7) entry to ‘inner’
  |  
                                        |     5 |   | { |  
                                        |     6 |   |   return *p; /* { dg-warning "-Wanalyzer-use-of-uninitialized-value" } */ |  
                                        |       |   |          ~~ |  
                                        |       |   |          | |  
                                        |       |   |          (8) ⚠️  use of uninitialized value ‘*p’ here
  |  
                                      
                                     
                                   | 
                                 
                               
                             | 
                           
                         
                       | 
                     
                   
                 |