16 | | if ((arr[i] = (struct foo *)malloc(sizeof(struct foo))) == NULL) { |
| | ^ |
| | | |
| | (11) following ‘true’ branch... ─>─┐ |
| | │ |
| | │ |
| ┌ | ──────────────────────────────────────────┘ |
17 | │ | for (; i >= 0; i--) { |
| │ | ~~~ ~~~~~~ |
| │ | | | |
| │ | | (13) following ‘true’ branch (when ‘i >= 0’)... ─>─┐ |
| └ | ─────>(12) ...to here │ |
| | │ |
| | │ |
| ┌ | ──────────────────────────────────────────────────────────────────┘ |
18 | │ | free(arr[i]); /* { dg-bogus "double-'free'" } */ |
| │ | ~ |
| │ | | |
| └ | ───────────────>(14) ...to here |
19 | | } |
20 | | free(arr); /* { dg-bogus "leak" "" { xfail *-*-* } } */ |
| | ~~~~~~~~~ |
| | | |
| | (15) ⚠️ ‘<unknown>’ leaks here; was allocated at (5)
|