/* { dg-do compile } */ | |
extern int foo (void); | |
extern void *memcpy (void *, const void *, __SIZE_TYPE__); | |
struct | |
{ | |
char a[6]; | |
} d; | |
struct | |
{ | |
int a1[0]; | |
int a2[0]; | |
int a3[0]; | |
int a4[]; | |
} a, c; | |
int b; | |
int * | |
bar () | |
{ | |
if (b) | |
return a.a4; | |
return a.a2; | |
} | |
void | |
baz () | |
{ | |
int *e, *f; | |
if (foo ()) | |
e = c.a3; | |
else | |
e = c.a1; | |
memcpy (d.a, e, 6); | |
f = bar (); | |
memcpy (d.a, f, 1); | |
} |