| 
              
                 
                  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); /* { dg-warning "-Wanalyzer-use-of-uninitialized-value" } */ |  
                          |       |   |          ~~~~~~~~~~~ |  
                          |       |   |          | |  
                          |       |   |          (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; |  
                                      |       |   |          ~~ |  
                                      |       |   |          | |  
                                      |       |   |          (8) ⚠️  use of uninitialized value ‘*p’ here
  |  
                                    
                                   
                                 | 
                               
                             
                           | 
                         
                       
                     | 
                   
                 
               |