1/* Copyright 1996, 1999 Free Software Foundation, Inc.
2
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.
7
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.
12
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.
16
17   Please email any bugs, comments, and/or additions to this file to:
18   bug-gdb@prep.ai.mit.edu  */
19
20struct struct1 { char a;};
21struct struct2 { char a, b;};
22struct struct3 { char a, b, c; };
23struct struct4 { char a, b, c, d; };
24struct struct5 { char a, b, c, d, e; };
25struct struct6 { char a, b, c, d, e, f; };
26struct struct7 { char a, b, c, d, e, f, g; };
27struct struct8 { char a, b, c, d, e, f, g, h; };
28struct struct9 { char a, b, c, d, e, f, g, h, i; };
29struct struct10 { char a, b, c, d, e, f, g, h, i, j; };
30struct struct11 { char a, b, c, d, e, f, g, h, i, j, k; };
31struct struct12 { char a, b, c, d, e, f, g, h, i, j, k, l; };
32struct struct16 { char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; };
33
34struct struct1 foo1 = {'1'},  L1;
35struct struct2 foo2 = { 'a', 'b'},  L2;
36struct struct3 foo3 = { 'A', 'B', 'C'},  L3;
37struct struct4 foo4 = {'1', '2', '3', '4'},  L4;
38struct struct5 foo5 = {'a', 'b', 'c', 'd', 'e'},  L5;
39struct struct6 foo6 = {'A', 'B', 'C', 'D', 'E', 'F'},  L6;
40struct struct7 foo7 = {'1', '2', '3', '4', '5', '6', '7'},  L7;
41struct struct8 foo8 = {'1', '2', '3', '4', '5', '6', '7', '8'},  L8;
42struct struct9 foo9 = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'},  L9;
43struct struct10 foo10 = {
44  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'},  L10;
45struct struct11 foo11 = {
46  '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B'}, L11;
47struct struct12 foo12 = {
48  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'}, L12;
49struct struct16 foo16 = {
50  'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'}, L16;
51
52struct struct1  fun1()
53{
54  return foo1;
55}
56struct struct2  fun2()
57{
58  return foo2;
59}
60struct struct3  fun3()
61{
62  return foo3;
63}
64struct struct4  fun4()
65{
66  return foo4;
67}
68struct struct5  fun5()
69{
70  return foo5;
71}
72struct struct6  fun6()
73{
74  return foo6;
75}
76struct struct7  fun7()
77{
78  return foo7;
79}
80struct struct8  fun8()
81{
82  return foo8;
83}
84struct struct9  fun9()
85{
86  return foo9;
87}
88struct struct10 fun10()
89{
90  return foo10;
91}
92struct struct11 fun11()
93{
94  return foo11;
95}
96struct struct12 fun12()
97{
98  return foo12;
99}
100struct struct16 fun16()
101{
102  return foo16;
103}
104
105#ifdef PROTOTYPES
106void Fun1(struct struct1 foo1)
107#else
108void Fun1(foo1)
109     struct struct1 foo1;
110#endif
111{
112  L1 = foo1;
113}
114#ifdef PROTOTYPES
115void Fun2(struct struct2 foo2)
116#else
117void Fun2(foo2)
118     struct struct2 foo2;
119#endif
120{
121  L2 = foo2;
122}
123#ifdef PROTOTYPES
124void Fun3(struct struct3 foo3)
125#else
126void Fun3(foo3)
127     struct struct3 foo3;
128#endif
129{
130  L3 = foo3;
131}
132#ifdef PROTOTYPES
133void Fun4(struct struct4 foo4)
134#else
135void Fun4(foo4)
136     struct struct4 foo4;
137#endif
138{
139  L4 = foo4;
140}
141#ifdef PROTOTYPES
142void Fun5(struct struct5 foo5)
143#else
144void Fun5(foo5)
145     struct struct5 foo5;
146#endif
147{
148  L5 = foo5;
149}
150#ifdef PROTOTYPES
151void Fun6(struct struct6 foo6)
152#else
153void Fun6(foo6)
154     struct struct6 foo6;
155#endif
156{
157  L6 = foo6;
158}
159#ifdef PROTOTYPES
160void Fun7(struct struct7 foo7)
161#else
162void Fun7(foo7)
163     struct struct7 foo7;
164#endif
165{
166  L7 = foo7;
167}
168#ifdef PROTOTYPES
169void Fun8(struct struct8 foo8)
170#else
171void Fun8(foo8)
172     struct struct8 foo8;
173#endif
174{
175  L8 = foo8;
176}
177#ifdef PROTOTYPES
178void Fun9(struct struct9 foo9)
179#else
180void Fun9(foo9)
181     struct struct9 foo9;
182#endif
183{
184  L9 = foo9;
185}
186#ifdef PROTOTYPES
187void Fun10(struct struct10 foo10)
188#else
189void Fun10(foo10)
190     struct struct10 foo10;
191#endif
192{
193  L10 = foo10;
194}
195#ifdef PROTOTYPES
196void Fun11(struct struct11 foo11)
197#else
198void Fun11(foo11)
199     struct struct11 foo11;
200#endif
201{
202  L11 = foo11;
203}
204#ifdef PROTOTYPES
205void Fun12(struct struct12 foo12)
206#else
207void Fun12(foo12)
208     struct struct12 foo12;
209#endif
210{
211  L12 = foo12;
212}
213#ifdef PROTOTYPES
214void Fun16(struct struct16 foo16)
215#else
216void Fun16(foo16)
217     struct struct16 foo16;
218#endif
219{
220  L16 = foo16;
221}
222
223int main()
224{
225#ifdef usestubs
226  set_debug_traps();
227  breakpoint();
228#endif
229
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();
244
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 = '$';
247
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);
261
262  return 0;
263}
264