| 
  
     ‘test’: events 1-8 
|    11 |   p = (int *)malloc (sizeof (int)); /* { dg-line malloc_of_p } */ |  
 |              ^~~~~~~~~~~~~~~~~~~~~ |  
 |              | |  
 |              (1) allocated here |  
|    12 |   if (!p) /* { dg-line test_of_p } */ |  
 |      ~         |  
 |      | |  
 |      (2) assuming ‘p’ is non-NULL |  
 |      (3) following ‘false’ branch (when ‘p’ is non-NULL)... |  
| [...] |  |  
|    18 |   q = (int *)malloc (sizeof (int)); /* { dg-line malloc_of_q } */ |  
 |              ~~~~~~~~~~~~~~~~~~~~~ |  
 |              | |  
 |              (4) ...to here |  
|    19 |   if (!q) /* { dg-line test_of_q } */ |  
 |      ~         |  
 |      | |  
 |      (5) following ‘true’ branch (when ‘q’ is NULL)... |  
|    20 |     { |  
|    21 |       free (p); /* { dg-line first_free_of_p } */ |  
 |       ~~~~~~~~ |  
 |       | |  
 |       (6) ...to here |  
 |       (7) first ‘free’ here |  
| [...] |  |  
|    27 |   free (p); /* { dg-line second_free_of_p } */ |  
 |   ~~~~~~~~     |  
 |   | |  
 |   (8) second ‘free’ here; first ‘free’ was at (7) |  
 
 |