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)21 Value 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