1 /* { dg-do compile } */ 2 /* { dg-options "-O1" } */ 3 4 typedef __complex__ double Value; 5 6 union U 7 { 8 Value v; 9 char c[sizeof(Value)]; 10 }; 11 12 struct S 13 { 14 union U u; 15 int i,j; 16 }; 17 18 Value gv; 19 int gi, gj; 20 foo(void)21Value foo (void) 22 { 23 struct S s,t; 24 25 t.i = gi; 26 t.j = gj; 27 t.u.v = gv; 28 t.u.c[0] = 0; 29 30 s = t; 31 __imag__ s.u.v += s.i; 32 33 return s.u.v; 34 } 35