1/* It is not clear whether this test is conforming.  See DR#236
2   http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_236.htm.  However,
3   there seems to be consensus that the presence of a union to aggregate
4   struct s1 and struct s2 should make it conforming.  */
5struct s1 { double d; };
6struct s2 { double d; };
7union u { struct s1 x; struct s2 y; };
8
9double f(struct s1 *a, struct s2 *b)
10{
11  a->d = 1.0;
12  return b->d + 1.0;
13}
14
15int main()
16{
17  union u a;
18  a.x.d = 0.0;
19  if (f (&a.x, &a.y) != 2.0)
20    abort ();
21  return 0;
22}
23