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) |