1 /* { dg-do compile } */
2 
3 extern int foo (void);
4 extern void *memcpy (void *, const void *, __SIZE_TYPE__);
5 
6 struct
7 {
8   char a[6];
9 } d;
10 struct
11 {
12   int a1[0];
13   int a2[0];
14   int a3[0];
15   int a4[];
16 } a, c;
17 int b;
18 
19 int *
bar()20 bar ()
21 {
22   if (b)
23     return a.a4;
24   return a.a2;
25 }
26 
27 void
baz()28 baz ()
29 {
30   int *e, *f;
31   if (foo ())
32     e = c.a3;
33   else
34     e = c.a1;
35   memcpy (d.a, e, 6);
36   f = bar ();
37   memcpy (d.a, f, 1);
38 }
39