/* PR c/89061 */ /* { dg-do compile } */ /* { dg-options "-Wjump-misses-init" } */ struct S { int s; }; int foo (int x) { struct S s = { 0 }; if ((s.s = x) == 0) goto cleanup; /* { dg-bogus "jump skips variable initialization" } */ s = (struct S) { .s = 42 }; cleanup: return s.s; } int bar (int x) { struct S *s = &(struct S) { 0 }; if ((s->s = x) == 0) goto cleanup; /* { dg-bogus "jump skips variable initialization" } */ s = &(struct S) { .s = 42 }; cleanup: return s->s; }