55 lines
748 B
C
55 lines
748 B
C
|
typedef struct {int a, b, c, d, e;} T;
|
||
|
|
||
|
int h (T *);
|
||
|
T g (T);
|
||
|
|
||
|
#if COMPILER != 1
|
||
|
h (T *x)
|
||
|
{
|
||
|
if (x->a != 0 || x->b != 1 || x->c != 2 || x->d != 3 || x->e != 4)
|
||
|
abort ();
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if COMPILER != 2
|
||
|
T
|
||
|
g (T x)
|
||
|
{
|
||
|
if (x.a != 13 || x.b != 47 || x.c != 123456 || x.d != -4711 || x.e != -2)
|
||
|
abort ();
|
||
|
x.a = 0;
|
||
|
x.b = 1;
|
||
|
x.c = 2;
|
||
|
x.d = 3;
|
||
|
x.e = 4;
|
||
|
h (&x);
|
||
|
return x;
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if COMPILER != 1
|
||
|
f ()
|
||
|
{
|
||
|
T x;
|
||
|
x.a = 13;
|
||
|
x.b = 47;
|
||
|
x.c = 123456;
|
||
|
x.d = -4711;
|
||
|
x.e = -2;
|
||
|
g (x);
|
||
|
if (x.a != 13 || x.b != 47 || x.c != 123456 || x.d != -4711 || x.e != -2)
|
||
|
abort ();
|
||
|
x = g (x);
|
||
|
if (x.a != 0 || x.b != 1 || x.c != 2 || x.d != 3 || x.e != 4)
|
||
|
abort ();
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#if COMPILER != 2
|
||
|
main ()
|
||
|
{
|
||
|
f ();
|
||
|
exit (0);
|
||
|
}
|
||
|
#endif
|