/* 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 ( ; ; ); | |
} | |
} |