| /* PR middle-end/104232 - spurious -Wuse-after-free after conditional free | |
| { dg-do compile } | |
| { dg-options "-O2 -Wall" } */ | |
| char* f (void); | |
| static inline void freep (void *p) | |
| { | |
| __builtin_free (*(void**)p); // { dg-bogus "-Wuse-after-free" } | |
| } | |
| int test_no_warn (void) | |
| { | |
| __attribute__ ((__cleanup__ (freep))) char *s = 0, *t = 0; | |
| t = f (); | |
| if (!t) | |
| return 0; | |
| s = f (); | |
| return 1; | |
| } |