2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.dg / compat / struct-by-value-10_x.c
blob5954104aa76dea2112730b14d7015776b538ef12
1 #include "compat-common.h"
3 #include "fp2-struct-defs.h"
4 #include "fp2-struct-check.h"
6 #define TEST(TYPE) \
7 TYPE g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE; \
8 TYPE g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE; \
9 TYPE g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE; \
10 TYPE g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE; \
12 extern void init##TYPE (TYPE *p, double x); \
13 extern void checkg##TYPE (void); \
14 extern void \
15 test##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \
16 TYPE s5, TYPE s6, TYPE s7, TYPE s8, \
17 TYPE s9, TYPE s10, TYPE s11, TYPE s12, \
18 TYPE s13, TYPE s14, TYPE s15, TYPE s16); \
19 extern void testva##TYPE (int n, ...); \
21 void \
22 test2_##TYPE (TYPE s1, TYPE s2, TYPE s3, TYPE s4, \
23 TYPE s5, TYPE s6, TYPE s7, TYPE s8) \
24 { \
25 test##TYPE (s1, g2s##TYPE, s2, g4s##TYPE, \
26 s3, g6s##TYPE, s4, g8s##TYPE, \
27 s5, g10s##TYPE, s6, g12s##TYPE, \
28 s7, g14s##TYPE, s8, g16s##TYPE); \
29 } \
31 void \
32 testit##TYPE (void) \
33 { \
34 DEBUG_FPUTS (#TYPE); \
35 DEBUG_FPUTS (" init: "); \
36 init##TYPE ( &g1s##TYPE, (double)1); \
37 init##TYPE ( &g2s##TYPE, (double)2); \
38 init##TYPE ( &g3s##TYPE, (double)3); \
39 init##TYPE ( &g4s##TYPE, (double)4); \
40 init##TYPE ( &g5s##TYPE, (double)5); \
41 init##TYPE ( &g6s##TYPE, (double)6); \
42 init##TYPE ( &g7s##TYPE, (double)7); \
43 init##TYPE ( &g8s##TYPE, (double)8); \
44 init##TYPE ( &g9s##TYPE, (double)9); \
45 init##TYPE (&g10s##TYPE, (double)10); \
46 init##TYPE (&g11s##TYPE, (double)11); \
47 init##TYPE (&g12s##TYPE, (double)12); \
48 init##TYPE (&g13s##TYPE, (double)13); \
49 init##TYPE (&g14s##TYPE, (double)14); \
50 init##TYPE (&g15s##TYPE, (double)15); \
51 init##TYPE (&g16s##TYPE, (double)16); \
52 checkg##TYPE (); \
53 DEBUG_NL; \
54 DEBUG_FPUTS (#TYPE); \
55 DEBUG_FPUTS (" test: "); \
56 test##TYPE (g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
57 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
58 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
59 g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \
60 DEBUG_NL; \
61 DEBUG_FPUTS (#TYPE); \
62 DEBUG_FPUTS (" testva:"); \
63 DEBUG_NL; \
64 testva##TYPE (1, \
65 g1s##TYPE); \
66 DEBUG_NL; \
67 testva##TYPE (2, \
68 g1s##TYPE, g2s##TYPE); \
69 DEBUG_NL; \
70 testva##TYPE (3, \
71 g1s##TYPE, g2s##TYPE, g3s##TYPE); \
72 DEBUG_NL; \
73 testva##TYPE (4, \
74 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE); \
75 DEBUG_NL; \
76 testva##TYPE (5, \
77 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
78 g5s##TYPE); \
79 DEBUG_NL; \
80 testva##TYPE (6, \
81 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
82 g5s##TYPE, g6s##TYPE); \
83 DEBUG_NL; \
84 testva##TYPE (7, \
85 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
86 g5s##TYPE, g6s##TYPE, g7s##TYPE); \
87 DEBUG_NL; \
88 testva##TYPE (8, \
89 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
90 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE); \
91 DEBUG_NL; \
92 testva##TYPE (9, \
93 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
94 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
95 g9s##TYPE); \
96 DEBUG_NL; \
97 testva##TYPE (10, \
98 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
99 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
100 g9s##TYPE, g10s##TYPE); \
101 DEBUG_NL; \
102 testva##TYPE (11, \
103 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
104 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
105 g9s##TYPE, g10s##TYPE, g11s##TYPE); \
106 DEBUG_NL; \
107 testva##TYPE (12, \
108 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
109 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
110 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE); \
111 DEBUG_NL; \
112 testva##TYPE (13, \
113 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
114 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
115 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
116 g13s##TYPE); \
117 DEBUG_NL; \
118 testva##TYPE (14, \
119 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
120 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
121 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
122 g13s##TYPE, g14s##TYPE); \
123 DEBUG_NL; \
124 testva##TYPE (15, \
125 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
126 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
127 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
128 g13s##TYPE, g14s##TYPE, g15s##TYPE); \
129 DEBUG_NL; \
130 testva##TYPE (16, \
131 g1s##TYPE, g2s##TYPE, g3s##TYPE, g4s##TYPE, \
132 g5s##TYPE, g6s##TYPE, g7s##TYPE, g8s##TYPE, \
133 g9s##TYPE, g10s##TYPE, g11s##TYPE, g12s##TYPE, \
134 g13s##TYPE, g14s##TYPE, g15s##TYPE, g16s##TYPE); \
135 DEBUG_NL; \
136 DEBUG_FPUTS (#TYPE); \
137 DEBUG_FPUTS (" test2: "); \
138 test2_##TYPE (g1s##TYPE, g3s##TYPE, g5s##TYPE, g7s##TYPE, \
139 g9s##TYPE, g11s##TYPE, g13s##TYPE, g15s##TYPE); \
140 DEBUG_NL; \
143 TEST(Sfd)
144 TEST(Sfl)
145 TEST(Sdf)
146 TEST(Sdl)
147 TEST(Slf)
148 TEST(Sld)
149 TEST(Sfdl)
150 TEST(Sfld)
151 TEST(Sdfl)
152 TEST(Sdlf)
153 TEST(Slfd)
154 TEST(Sldf)
156 #undef T
158 void
159 struct_by_value_10_x ()
161 DEBUG_INIT
163 #define T(TYPE) testit##TYPE ();
165 T(Sfd)
166 T(Sfl)
167 T(Sdf)
168 T(Sdl)
169 T(Slf)
170 T(Sld)
171 T(Sfdl)
172 T(Sfld)
173 T(Sdfl)
174 T(Sdlf)
175 T(Slfd)
176 T(Sldf)
178 DEBUG_FINI
180 if (fails != 0)
181 abort ();
183 #undef T