|     6 |   char *buffer = (char*)malloc(256); | 
 |                         ^~~~~~~~~~~ | 
 |                         | | 
 |                         (1) allocated here | 
|     7 |  | 
|     8 |   for (i=0; i<255; i++) { | 
 |             ~~~~~         | 
 |              | | 
 |              (2) following ‘true’ branch (when ‘i <= 254’)... | 
 |              (6) following ‘true’ branch (when ‘i <= 254’)... | 
|     9 |     buffer[i] = c; /* { dg-warning "use after 'free' of 'buffer'" "use after free" { xfail *-*-* } } */ | 
 |     ~~~~~~~~~~~~~         | 
 |           |   | | 
 |           |   (4) assuming ‘buffer’ is non-NULL | 
 |           (3) ...to here | 
 |           (7) ...to here | 
|    10 |                    /* { dg-warning "possibly-NULL 'buffer'" "deref of unchecked" { target *-*-* } .-1 } */ | 
|    11 |     free(buffer); /* { dg-warning "double-'free' of 'buffer'" } */ | 
 |     ~~~~~~~~~~~~          | 
 |     | | 
 |     (5) first ‘free’ here | 
 |     (8) second ‘free’ here; first ‘free’ was at (5) |