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