| /* { dg-additional-options "-O2 -Wno-analyzer-symbol-too-complex" } */ | |
| /* { dg-skip-if "requires hosted libstdc++ for stdlib free" { ! hostedlib } } */ | |
| #include <stdlib.h> | |
| struct List { | |
| struct List *next; | |
| }; | |
| void foo(struct List *p, struct List *q) | |
| { | |
| while (p && p != q){ | |
| struct List *next = p->next; | |
| free(p); | |
| p = next; | |
| } | |
| } | |
| int main() | |
| { | |
| struct List x = {0}; | |
| foo(NULL, &x); | |
| return 0; | |
| } | |