| /* { dg-do compile } */ | |
| /* { dg-options "-O2 -Wall" } */ | |
| typedef struct | |
| { | |
| int p1; | |
| int p2; | |
| int p3; | |
| } P; | |
| struct S | |
| { | |
| int field; | |
| }; | |
| extern int v2; | |
| extern void foo (struct S *map); | |
| static struct S var; | |
| const P *pv; | |
| int ps; | |
| void | |
| f (void) | |
| { | |
| if (pv != 0) | |
| for (const P *ph = pv; ph < &pv[ps]; ++ph) | |
| switch (ph->p1) | |
| { | |
| case 1: | |
| v2 = ph->p2; | |
| break; | |
| case 2: | |
| var.field = ph->p3; | |
| break; | |
| } | |
| if (var.field != 0) /* { dg-bogus "uninitialized" } */ | |
| foo (&var); | |
| } |