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