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