xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/gcc.c-torture/compat/struct-i.c (revision c87b03e512fc05ed6e0222f6fb0ae86264b1d05b)
1*c87b03e5Sespie typedef struct {int a;} 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 != 47114711)
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)
19*c87b03e5Sespie     abort ();
20*c87b03e5Sespie   x.a = 47114711;
21*c87b03e5Sespie   h (&x);
22*c87b03e5Sespie   return x;
23*c87b03e5Sespie }
24*c87b03e5Sespie #endif
25*c87b03e5Sespie 
26*c87b03e5Sespie #if COMPILER != 1
f()27*c87b03e5Sespie f ()
28*c87b03e5Sespie {
29*c87b03e5Sespie   T x;
30*c87b03e5Sespie   x.a = 13;
31*c87b03e5Sespie   g (x);
32*c87b03e5Sespie   if (x.a != 13)
33*c87b03e5Sespie     abort ();
34*c87b03e5Sespie   x = g (x);
35*c87b03e5Sespie   if (x.a != 47114711)
36*c87b03e5Sespie     abort ();
37*c87b03e5Sespie }
38*c87b03e5Sespie #endif
39*c87b03e5Sespie 
40*c87b03e5Sespie #if COMPILER != 2
main()41*c87b03e5Sespie main ()
42*c87b03e5Sespie {
43*c87b03e5Sespie   f ();
44*c87b03e5Sespie   exit (0);
45*c87b03e5Sespie }
46*c87b03e5Sespie #endif
47