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