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 *
20 bar ()
21 {
22 if (b)
23 return a.a4;
24 return a.a2;
25 }
26
27 void
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 }