/* { dg-do run } */ struct { int mallocFailed; } *a; struct StrAccum { int useMalloc; } b, c; static void fn1 (struct StrAccum *p1, int p2) { if (p2 == 0) return; if (p1->useMalloc) a->mallocFailed = 0; } void fn2 (struct StrAccum *p1) { fn1 (p1, 1); } void fn3 (struct StrAccum *p1) { fn1 (p1, 1); } void fn4 () { c.useMalloc = 1; fn1 (&c, 0); } int main () { fn3 (&b); return 0; }