| /* PR middle-end/104761 - bogus -Wdangling-pointer with cleanup and infinite loop | |
| { dg-do compile } | |
| { dg-options "-O -Wall" } */ | |
| typedef struct { int i; } S; | |
| void f (S **); | |
| int g (int); | |
| void nowarn (int x) | |
| { | |
| S s = { 0 }; | |
| __attribute__((__cleanup__ (f))) S *p = 0; | |
| if (x) | |
| { | |
| g (s.i); // { dg-bogus "-Wdangling-pointer" } | |
| for ( ; ; ); | |
| } | |
| } |