1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
union U { __complex__ int ci; __complex__ float cf; }; float gd; extern float bar (union U); float foo (int b, double f1, double f2, int c1, int c2) { union U u; double r; if (b) { __real__ u.cf = f1; __imag__ u.cf = f2; } else { __real__ u.ci = c1; __imag__ u.ci = c2; } r = bar (u); return r; }