1typedef struct {int a, b, c, d, e;} T;
2
3int h (T *);
4T g (T);
5
6#if COMPILER != 1
7h (T *x)
8{
9  if (x->a != 0 || x->b != 1 || x->c != 2 || x->d != 3 || x->e != 4)
10    abort ();
11}
12#endif
13
14#if COMPILER != 2
15T
16g (T x)
17{
18  if (x.a != 13 || x.b != 47 || x.c != 123456 || x.d != -4711 || x.e != -2)
19    abort ();
20  x.a = 0;
21  x.b = 1;
22  x.c = 2;
23  x.d = 3;
24  x.e = 4;
25  h (&x);
26  return x;
27}
28#endif
29
30#if COMPILER != 1
31f ()
32{
33  T x;
34  x.a = 13;
35  x.b = 47;
36  x.c = 123456;
37  x.d = -4711;
38  x.e = -2;
39  g (x);
40  if (x.a != 13 || x.b != 47 || x.c != 123456 || x.d != -4711 || x.e != -2)
41    abort ();
42  x = g (x);
43  if (x.a != 0 || x.b != 1 || x.c != 2 || x.d != 3 || x.e != 4)
44    abort ();
45}
46#endif
47
48#if COMPILER != 2
49main ()
50{
51  f ();
52  exit (0);
53}
54#endif
55