FSF GCC merge 02/23/03
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / structs.c
blob356f0729f1e36e8171c057962fbe679b077a1500
1 /* Copyright 1996, 1999 Free Software Foundation, Inc.
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2 of the License, or
6 (at your option) any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software
15 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 Please email any bugs, comments, and/or additions to this file to:
18 bug-gdb@prep.ai.mit.edu */
20 struct struct1 { char a;};
21 struct struct2 { char a, b;};
22 struct struct3 { char a, b, c; };
23 struct struct4 { char a, b, c, d; };
24 struct struct5 { char a, b, c, d, e; };
25 struct struct6 { char a, b, c, d, e, f; };
26 struct struct7 { char a, b, c, d, e, f, g; };
27 struct struct8 { char a, b, c, d, e, f, g, h; };
28 struct struct9 { char a, b, c, d, e, f, g, h, i; };
29 struct struct10 { char a, b, c, d, e, f, g, h, i, j; };
30 struct struct11 { char a, b, c, d, e, f, g, h, i, j, k; };
31 struct struct12 { char a, b, c, d, e, f, g, h, i, j, k, l; };
32 struct struct16 { char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; };
34 struct struct1 foo1 = {'1'}, L1;
35 struct struct2 foo2 = { 'a', 'b'}, L2;
36 struct struct3 foo3 = { 'A', 'B', 'C'}, L3;
37 struct struct4 foo4 = {'1', '2', '3', '4'}, L4;
38 struct struct5 foo5 = {'a', 'b', 'c', 'd', 'e'}, L5;
39 struct struct6 foo6 = {'A', 'B', 'C', 'D', 'E', 'F'}, L6;
40 struct struct7 foo7 = {'1', '2', '3', '4', '5', '6', '7'}, L7;
41 struct struct8 foo8 = {'1', '2', '3', '4', '5', '6', '7', '8'}, L8;
42 struct struct9 foo9 = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'}, L9;
43 struct struct10 foo10 = {
44 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}, L10;
45 struct struct11 foo11 = {
46 '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B'}, L11;
47 struct struct12 foo12 = {
48 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'}, L12;
49 struct struct16 foo16 = {
50 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'}, L16;
52 struct struct1 fun1()
54 return foo1;
56 struct struct2 fun2()
58 return foo2;
60 struct struct3 fun3()
62 return foo3;
64 struct struct4 fun4()
66 return foo4;
68 struct struct5 fun5()
70 return foo5;
72 struct struct6 fun6()
74 return foo6;
76 struct struct7 fun7()
78 return foo7;
80 struct struct8 fun8()
82 return foo8;
84 struct struct9 fun9()
86 return foo9;
88 struct struct10 fun10()
90 return foo10;
92 struct struct11 fun11()
94 return foo11;
96 struct struct12 fun12()
98 return foo12;
100 struct struct16 fun16()
102 return foo16;
105 #ifdef PROTOTYPES
106 void Fun1(struct struct1 foo1)
107 #else
108 void Fun1(foo1)
109 struct struct1 foo1;
110 #endif
112 L1 = foo1;
114 #ifdef PROTOTYPES
115 void Fun2(struct struct2 foo2)
116 #else
117 void Fun2(foo2)
118 struct struct2 foo2;
119 #endif
121 L2 = foo2;
123 #ifdef PROTOTYPES
124 void Fun3(struct struct3 foo3)
125 #else
126 void Fun3(foo3)
127 struct struct3 foo3;
128 #endif
130 L3 = foo3;
132 #ifdef PROTOTYPES
133 void Fun4(struct struct4 foo4)
134 #else
135 void Fun4(foo4)
136 struct struct4 foo4;
137 #endif
139 L4 = foo4;
141 #ifdef PROTOTYPES
142 void Fun5(struct struct5 foo5)
143 #else
144 void Fun5(foo5)
145 struct struct5 foo5;
146 #endif
148 L5 = foo5;
150 #ifdef PROTOTYPES
151 void Fun6(struct struct6 foo6)
152 #else
153 void Fun6(foo6)
154 struct struct6 foo6;
155 #endif
157 L6 = foo6;
159 #ifdef PROTOTYPES
160 void Fun7(struct struct7 foo7)
161 #else
162 void Fun7(foo7)
163 struct struct7 foo7;
164 #endif
166 L7 = foo7;
168 #ifdef PROTOTYPES
169 void Fun8(struct struct8 foo8)
170 #else
171 void Fun8(foo8)
172 struct struct8 foo8;
173 #endif
175 L8 = foo8;
177 #ifdef PROTOTYPES
178 void Fun9(struct struct9 foo9)
179 #else
180 void Fun9(foo9)
181 struct struct9 foo9;
182 #endif
184 L9 = foo9;
186 #ifdef PROTOTYPES
187 void Fun10(struct struct10 foo10)
188 #else
189 void Fun10(foo10)
190 struct struct10 foo10;
191 #endif
193 L10 = foo10;
195 #ifdef PROTOTYPES
196 void Fun11(struct struct11 foo11)
197 #else
198 void Fun11(foo11)
199 struct struct11 foo11;
200 #endif
202 L11 = foo11;
204 #ifdef PROTOTYPES
205 void Fun12(struct struct12 foo12)
206 #else
207 void Fun12(foo12)
208 struct struct12 foo12;
209 #endif
211 L12 = foo12;
213 #ifdef PROTOTYPES
214 void Fun16(struct struct16 foo16)
215 #else
216 void Fun16(foo16)
217 struct struct16 foo16;
218 #endif
220 L16 = foo16;
223 int main()
225 #ifdef usestubs
226 set_debug_traps();
227 breakpoint();
228 #endif
230 /* TEST C FUNCTIONS */
231 L1 = fun1();
232 L2 = fun2();
233 L3 = fun3();
234 L4 = fun4();
235 L5 = fun5();
236 L6 = fun6();
237 L7 = fun7();
238 L8 = fun8();
239 L9 = fun9();
240 L10 = fun10();
241 L11 = fun11();
242 L12 = fun12();
243 L16 = fun16();
245 foo1.a = foo2.a = foo3.a = foo4.a = foo5.a = foo6.a = foo7.a = foo8.a =
246 foo9.a = foo10.a = foo11.a = foo12.a = foo16.a = '$';
248 Fun1(foo1);
249 Fun2(foo2);
250 Fun3(foo3);
251 Fun4(foo4);
252 Fun5(foo5);
253 Fun6(foo6);
254 Fun7(foo7);
255 Fun8(foo8);
256 Fun9(foo9);
257 Fun10(foo10);
258 Fun11(foo11);
259 Fun12(foo12);
260 Fun16(foo16);
262 return 0;