typedef struct {int a; char b;} T; int h (T *); T g (T); #if COMPILER != 1 h (T *x) { if (x->a != 0 || x->b != 1) abort (); } #endif #if COMPILER != 2 T g (T x) { if (x.a != 13 || x.b != 47) abort (); x.a = 0; x.b = 1; h (&x); return x; } #endif #if COMPILER != 1 f () { T x; x.a = 13; x.b = 47; g (x); if (x.a != 13 || x.b != 47) abort (); x = g (x); if (x.a != 0 || x.b != 1) abort (); } #endif #if COMPILER != 2 main () { f (); exit (0); } #endif