1 /* Copyright 1996, 1999, 2007 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 3 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 GCC; see the file COPYING3.  If not see
15    <http://www.gnu.org/licenses/>.
16 
17    Please email any bugs, comments, and/or additions to this file to:
18    bug-gdb@prep.ai.mit.edu  */
19 
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; };
33 
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;
51 
fun1()52 struct struct1  fun1()
53 {
54   return foo1;
55 }
fun2()56 struct struct2  fun2()
57 {
58   return foo2;
59 }
fun3()60 struct struct3  fun3()
61 {
62   return foo3;
63 }
fun4()64 struct struct4  fun4()
65 {
66   return foo4;
67 }
fun5()68 struct struct5  fun5()
69 {
70   return foo5;
71 }
fun6()72 struct struct6  fun6()
73 {
74   return foo6;
75 }
fun7()76 struct struct7  fun7()
77 {
78   return foo7;
79 }
fun8()80 struct struct8  fun8()
81 {
82   return foo8;
83 }
fun9()84 struct struct9  fun9()
85 {
86   return foo9;
87 }
fun10()88 struct struct10 fun10()
89 {
90   return foo10;
91 }
fun11()92 struct struct11 fun11()
93 {
94   return foo11;
95 }
fun12()96 struct struct12 fun12()
97 {
98   return foo12;
99 }
fun16()100 struct struct16 fun16()
101 {
102   return foo16;
103 }
104 
105 #ifdef PROTOTYPES
Fun1(struct struct1 foo1)106 void Fun1(struct struct1 foo1)
107 #else
108 void Fun1(foo1)
109      struct struct1 foo1;
110 #endif
111 {
112   L1 = foo1;
113 }
114 #ifdef PROTOTYPES
Fun2(struct struct2 foo2)115 void Fun2(struct struct2 foo2)
116 #else
117 void Fun2(foo2)
118      struct struct2 foo2;
119 #endif
120 {
121   L2 = foo2;
122 }
123 #ifdef PROTOTYPES
Fun3(struct struct3 foo3)124 void Fun3(struct struct3 foo3)
125 #else
126 void Fun3(foo3)
127      struct struct3 foo3;
128 #endif
129 {
130   L3 = foo3;
131 }
132 #ifdef PROTOTYPES
Fun4(struct struct4 foo4)133 void Fun4(struct struct4 foo4)
134 #else
135 void Fun4(foo4)
136      struct struct4 foo4;
137 #endif
138 {
139   L4 = foo4;
140 }
141 #ifdef PROTOTYPES
Fun5(struct struct5 foo5)142 void Fun5(struct struct5 foo5)
143 #else
144 void Fun5(foo5)
145      struct struct5 foo5;
146 #endif
147 {
148   L5 = foo5;
149 }
150 #ifdef PROTOTYPES
Fun6(struct struct6 foo6)151 void Fun6(struct struct6 foo6)
152 #else
153 void Fun6(foo6)
154      struct struct6 foo6;
155 #endif
156 {
157   L6 = foo6;
158 }
159 #ifdef PROTOTYPES
Fun7(struct struct7 foo7)160 void Fun7(struct struct7 foo7)
161 #else
162 void Fun7(foo7)
163      struct struct7 foo7;
164 #endif
165 {
166   L7 = foo7;
167 }
168 #ifdef PROTOTYPES
Fun8(struct struct8 foo8)169 void Fun8(struct struct8 foo8)
170 #else
171 void Fun8(foo8)
172      struct struct8 foo8;
173 #endif
174 {
175   L8 = foo8;
176 }
177 #ifdef PROTOTYPES
Fun9(struct struct9 foo9)178 void Fun9(struct struct9 foo9)
179 #else
180 void Fun9(foo9)
181      struct struct9 foo9;
182 #endif
183 {
184   L9 = foo9;
185 }
186 #ifdef PROTOTYPES
Fun10(struct struct10 foo10)187 void Fun10(struct struct10 foo10)
188 #else
189 void Fun10(foo10)
190      struct struct10 foo10;
191 #endif
192 {
193   L10 = foo10;
194 }
195 #ifdef PROTOTYPES
Fun11(struct struct11 foo11)196 void Fun11(struct struct11 foo11)
197 #else
198 void Fun11(foo11)
199      struct struct11 foo11;
200 #endif
201 {
202   L11 = foo11;
203 }
204 #ifdef PROTOTYPES
Fun12(struct struct12 foo12)205 void Fun12(struct struct12 foo12)
206 #else
207 void Fun12(foo12)
208      struct struct12 foo12;
209 #endif
210 {
211   L12 = foo12;
212 }
213 #ifdef PROTOTYPES
Fun16(struct struct16 foo16)214 void Fun16(struct struct16 foo16)
215 #else
216 void Fun16(foo16)
217      struct struct16 foo16;
218 #endif
219 {
220   L16 = foo16;
221 }
222 
main()223 int 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