|    34 |   void *ptr = malloc (1024); | 
 |               ^~~~~~~~~~~~~ | 
 |               | | 
 |               (1) allocated here | 
|    35 |   if (x) | 
 |      ~          | 
 |      | | 
 |      (2) following ‘true’ branch (when ‘x != 0’)... | 
|    36 |     free (ptr); | 
 |     ~~~~~~~~~~  | 
 |     | | 
 |     (3) ...to here | 
 |     (4) first ‘free’ here | 
|    37 |   if (y) | 
 |      ~          | 
 |      | | 
 |      (5) following ‘true’ branch (when ‘y != 0’)... | 
|    38 |     free (ptr); /* { dg-warning "double-'free' of 'ptr'"  } */ | 
 |     ~~~~~~~~~~  | 
 |     | | 
 |     (6) ...to here | 
 |     (7) second ‘free’ here; first ‘free’ was at (4) |