Bug path

test
‘test’: events 1-8
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)