| 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 |