1 typedef union
2 {
3   double value;
4   struct
5   {
6     unsigned long msw;
7     unsigned long lsw;
8   } parts;
9 } ieee_double_shape_type;
10 
f(int iy)11 double f (int iy)
12 {
13   double z, t;
14   ieee_double_shape_type u, v;
15 
16   if (iy == 1)
17     return 0;
18 
19   u.parts.msw = iy;
20   u.parts.lsw = 0;
21   z = u.value;
22   v.parts.msw = iy;
23   v.parts.lsw = 0;
24   t = v.value;
25   return 1.0+z+t+t;
26 }
27