1e93f7393Sniklas /* Test passing of arguments to functions. Use various sorts of arguments,
2e93f7393Sniklas including basic types, pointers to those types, structures, lots of
3e93f7393Sniklas args, etc, in various combinations. */
4e93f7393Sniklas
5e93f7393Sniklas /* AIX requires this to be the first thing in the file. */
6e93f7393Sniklas #ifdef __GNUC__
7e93f7393Sniklas # define alloca __builtin_alloca
8e93f7393Sniklas # define HAVE_STACK_ALLOCA 1
9e93f7393Sniklas #else /* not __GNUC__ */
10e93f7393Sniklas # ifdef _AIX
11e93f7393Sniklas #pragma alloca
12e93f7393Sniklas # define HAVE_STACK_ALLOCA 1
13e93f7393Sniklas # else /* Not AIX */
14e93f7393Sniklas # ifdef sparc
15e93f7393Sniklas # include <alloca.h>
16e93f7393Sniklas # define HAVE_STACK_ALLOCA 1
17e93f7393Sniklas # ifdef __STDC__
18e93f7393Sniklas void *alloca ();
19e93f7393Sniklas # else
20e93f7393Sniklas char *alloca ();
21e93f7393Sniklas # endif /* __STDC__ */
22e93f7393Sniklas # endif /* sparc */
23e93f7393Sniklas # endif /* Not AIX */
24e93f7393Sniklas #endif /* not __GNUC__ */
25e93f7393Sniklas
26e93f7393Sniklas char c = 'a';
27e93f7393Sniklas char *cp = &c;
28e93f7393Sniklas
29e93f7393Sniklas unsigned char uc = 'b';
30e93f7393Sniklas unsigned char *ucp = &uc;
31e93f7393Sniklas
32e93f7393Sniklas short s = 1;
33e93f7393Sniklas short *sp = &s;
34e93f7393Sniklas
35e93f7393Sniklas unsigned short us = 6;
36e93f7393Sniklas unsigned short *usp = &us;
37e93f7393Sniklas
38e93f7393Sniklas int i = 2;
39e93f7393Sniklas int *ip = &i;
40e93f7393Sniklas
41e93f7393Sniklas unsigned int ui = 7;
42e93f7393Sniklas unsigned int *uip = &ui;
43e93f7393Sniklas
44e93f7393Sniklas long l = 3;
45e93f7393Sniklas long *lp = &l;
46e93f7393Sniklas
47e93f7393Sniklas unsigned long ul = 8;
48e93f7393Sniklas unsigned long *ulp = &ul;
49e93f7393Sniklas
50e93f7393Sniklas float f = 4.0;
51e93f7393Sniklas float *fp = &f;
52e93f7393Sniklas
53e93f7393Sniklas double d = 5.0;
54e93f7393Sniklas double *dp = &d;
55e93f7393Sniklas
56e93f7393Sniklas struct stag {
57e93f7393Sniklas int s1;
58e93f7393Sniklas int s2;
59e93f7393Sniklas } st = { 101, 102 };
60e93f7393Sniklas struct stag *stp = &st;
61e93f7393Sniklas
62e93f7393Sniklas union utag {
63e93f7393Sniklas int u1;
64e93f7393Sniklas long u2;
65e93f7393Sniklas } un;
66e93f7393Sniklas union utag *unp = &un;
67e93f7393Sniklas
68e93f7393Sniklas char carray[] = {'a', 'n', ' ', 'a', 'r', 'r', 'a', 'y', '\0'};
69e93f7393Sniklas
70e93f7393Sniklas
71e93f7393Sniklas /* Test various permutations and interleaving of integral arguments */
72e93f7393Sniklas
73e93f7393Sniklas
74*b725ae77Skettenis #ifdef PROTOTYPES
call0a(char c,short s,int i,long l)75*b725ae77Skettenis void call0a (char c, short s, int i, long l)
76*b725ae77Skettenis #else
77e93f7393Sniklas call0a (c, s, i, l)
78e93f7393Sniklas char c; short s; int i; long l;
79*b725ae77Skettenis #endif
80e93f7393Sniklas {
81e93f7393Sniklas c = 'a';
82e93f7393Sniklas s = 5;
83e93f7393Sniklas i = 6;
84e93f7393Sniklas l = 7;
85e93f7393Sniklas }
86e93f7393Sniklas
87*b725ae77Skettenis #ifdef PROTOTYPES
call0b(short s,int i,long l,char c)88*b725ae77Skettenis void call0b (short s, int i, long l, char c)
89*b725ae77Skettenis #else
90e93f7393Sniklas call0b (s, i, l, c)
91e93f7393Sniklas short s; int i; long l; char c;
92*b725ae77Skettenis #endif
93e93f7393Sniklas {
94e93f7393Sniklas s = 6; i = 7; l = 8; c = 'j';
95e93f7393Sniklas }
96e93f7393Sniklas
97*b725ae77Skettenis #ifdef PROTOTYPES
call0c(int i,long l,char c,short s)98*b725ae77Skettenis void call0c (int i, long l, char c, short s)
99*b725ae77Skettenis #else
100e93f7393Sniklas call0c (i, l, c, s)
101e93f7393Sniklas int i; long l; char c; short s;
102*b725ae77Skettenis #endif
103e93f7393Sniklas {
104e93f7393Sniklas i = 3; l = 4; c = 'k'; s = 5;
105e93f7393Sniklas }
106e93f7393Sniklas
107*b725ae77Skettenis #ifdef PROTOTYPES
call0d(long l,char c,short s,int i)108*b725ae77Skettenis void call0d (long l, char c, short s, int i)
109*b725ae77Skettenis #else
110e93f7393Sniklas call0d (l, c, s, i)
111e93f7393Sniklas long l; char c; short s; int i;
112*b725ae77Skettenis #endif
113e93f7393Sniklas {
114e93f7393Sniklas l = 7; c = 'z'; s = 8; i = 9;
115e93f7393Sniklas }
116e93f7393Sniklas
117*b725ae77Skettenis #ifdef PROTOTYPES
call0e(char c1,long l,char c2,int i,char c3,short s,char c4,char c5)118*b725ae77Skettenis void call0e (char c1, long l, char c2, int i, char c3, short s, char c4, char c5)
119*b725ae77Skettenis #else
120e93f7393Sniklas call0e (c1, l, c2, i, c3, s, c4, c5)
121e93f7393Sniklas char c1; long l; char c2; int i; char c3; short s; char c4; char c5;
122*b725ae77Skettenis #endif
123e93f7393Sniklas {
124e93f7393Sniklas c1 = 'a'; l = 5; c2 = 'b'; i = 7; c3 = 'c'; s = 7; c4 = 'f'; c5 = 'g';
125e93f7393Sniklas }
126e93f7393Sniklas
127e93f7393Sniklas
128e93f7393Sniklas /* Test various permutations and interleaving of unsigned integral arguments */
129e93f7393Sniklas
130e93f7393Sniklas
131*b725ae77Skettenis #ifdef PROTOTYPES
call1a(unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)132*b725ae77Skettenis void call1a (unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
133*b725ae77Skettenis #else
134e93f7393Sniklas call1a (uc, us, ui, ul)
135e93f7393Sniklas unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
136*b725ae77Skettenis #endif
137e93f7393Sniklas {
138e93f7393Sniklas uc = 5; us = 6; ui = 7; ul = 8;
139e93f7393Sniklas }
140e93f7393Sniklas
141*b725ae77Skettenis #ifdef PROTOTYPES
call1b(unsigned short us,unsigned int ui,unsigned long ul,unsigned char uc)142*b725ae77Skettenis void call1b (unsigned short us, unsigned int ui, unsigned long ul, unsigned char uc)
143*b725ae77Skettenis #else
144e93f7393Sniklas call1b (us, ui, ul, uc)
145e93f7393Sniklas unsigned short us; unsigned int ui; unsigned long ul; unsigned char uc;
146*b725ae77Skettenis #endif
147e93f7393Sniklas {
148e93f7393Sniklas uc = 5; us = 6; ui = 7; ul = 8;
149e93f7393Sniklas }
150e93f7393Sniklas
151*b725ae77Skettenis #ifdef PROTOTYPES
call1c(unsigned int ui,unsigned long ul,unsigned char uc,unsigned short us)152*b725ae77Skettenis void call1c (unsigned int ui, unsigned long ul, unsigned char uc, unsigned short us)
153*b725ae77Skettenis #else
154e93f7393Sniklas call1c (ui, ul, uc, us)
155e93f7393Sniklas unsigned int ui; unsigned long ul; unsigned char uc; unsigned short us;
156*b725ae77Skettenis #endif
157e93f7393Sniklas {
158e93f7393Sniklas uc = 5; us = 6; ui = 7; ul = 8;
159e93f7393Sniklas }
160e93f7393Sniklas
161*b725ae77Skettenis #ifdef PROTOTYPES
call1d(unsigned long ul,unsigned char uc,unsigned short us,unsigned int ui)162*b725ae77Skettenis void call1d (unsigned long ul, unsigned char uc, unsigned short us, unsigned int ui)
163*b725ae77Skettenis #else
164e93f7393Sniklas call1d (ul, uc, us, ui)
165e93f7393Sniklas unsigned long ul; unsigned char uc; unsigned short us; unsigned int ui;
166*b725ae77Skettenis #endif
167e93f7393Sniklas {
168e93f7393Sniklas uc = 5; us = 6; ui = 7; ul = 8;
169e93f7393Sniklas }
170e93f7393Sniklas
171*b725ae77Skettenis #ifdef PROTOTYPES
call1e(unsigned char uc1,unsigned long ul,unsigned char uc2,unsigned int ui,unsigned char uc3,unsigned short us,unsigned char uc4,unsigned char uc5)172*b725ae77Skettenis void call1e (unsigned char uc1, unsigned long ul, unsigned char uc2, unsigned int ui, unsigned char uc3, unsigned short us, unsigned char uc4, unsigned char uc5)
173*b725ae77Skettenis #else
174e93f7393Sniklas call1e (uc1, ul, uc2, ui, uc3, us, uc4, uc5)
175e93f7393Sniklas unsigned char uc1; unsigned long ul; unsigned char uc2; unsigned int ui;
176e93f7393Sniklas unsigned char uc3; unsigned short us; unsigned char uc4; unsigned char uc5;
177*b725ae77Skettenis #endif
178e93f7393Sniklas {
179e93f7393Sniklas uc1 = 5; ul = 7; uc2 = 8; ui = 9; uc3 = 10; us = 11; uc4 = 12; uc5 = 55;
180e93f7393Sniklas }
181e93f7393Sniklas
182e93f7393Sniklas /* Test various permutations and interleaving of integral arguments with
183e93f7393Sniklas floating point arguments. */
184e93f7393Sniklas
185e93f7393Sniklas
186*b725ae77Skettenis #ifdef PROTOTYPES
call2a(char c,float f1,short s,double d1,int i,float f2,long l,double d2)187*b725ae77Skettenis void call2a (char c, float f1, short s, double d1, int i, float f2, long l, double d2)
188*b725ae77Skettenis #else
189e93f7393Sniklas call2a (c, f1, s, d1, i, f2, l, d2)
190e93f7393Sniklas char c; float f1; short s; double d1; int i; float f2; long l; double d2;
191*b725ae77Skettenis #endif
192e93f7393Sniklas {
193e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
194e93f7393Sniklas }
195e93f7393Sniklas
196*b725ae77Skettenis #ifdef PROTOTYPES
call2b(float f1,short s,double d1,int i,float f2,long l,double d2,char c)197*b725ae77Skettenis void call2b (float f1, short s, double d1, int i, float f2, long l, double d2, char c)
198*b725ae77Skettenis #else
199e93f7393Sniklas call2b (f1, s, d1, i, f2, l, d2, c)
200e93f7393Sniklas float f1; short s; double d1; int i; float f2; long l; double d2; char c;
201*b725ae77Skettenis #endif
202e93f7393Sniklas {
203e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
204e93f7393Sniklas }
205e93f7393Sniklas
206*b725ae77Skettenis #ifdef PROTOTYPES
call2c(short s,double d1,int i,float f2,long l,double d2,char c,float f1)207*b725ae77Skettenis void call2c (short s, double d1, int i, float f2, long l, double d2, char c, float f1)
208*b725ae77Skettenis #else
209e93f7393Sniklas call2c (s, d1, i, f2, l, d2, c, f1)
210e93f7393Sniklas short s; double d1; int i; float f2; long l; double d2; char c; float f1;
211*b725ae77Skettenis #endif
212e93f7393Sniklas {
213e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
214e93f7393Sniklas }
215e93f7393Sniklas
216*b725ae77Skettenis #ifdef PROTOTYPES
call2d(double d1,int i,float f2,long l,double d2,char c,float f1,short s)217*b725ae77Skettenis void call2d (double d1, int i, float f2, long l, double d2, char c, float f1, short s)
218*b725ae77Skettenis #else
219e93f7393Sniklas call2d (d1, i, f2, l, d2, c, f1, s)
220e93f7393Sniklas double d1; int i; float f2; long l; double d2; char c; float f1; short s;
221*b725ae77Skettenis #endif
222e93f7393Sniklas {
223e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
224e93f7393Sniklas }
225e93f7393Sniklas
226*b725ae77Skettenis #ifdef PROTOTYPES
call2e(int i,float f2,long l,double d2,char c,float f1,short s,double d1)227*b725ae77Skettenis void call2e (int i, float f2, long l, double d2, char c, float f1, short s, double d1)
228*b725ae77Skettenis #else
229e93f7393Sniklas call2e (i, f2, l, d2, c, f1, s, d1)
230e93f7393Sniklas int i; float f2; long l; double d2; char c; float f1; short s; double d1;
231*b725ae77Skettenis #endif
232e93f7393Sniklas {
233e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
234e93f7393Sniklas }
235e93f7393Sniklas
236*b725ae77Skettenis #ifdef PROTOTYPES
call2f(float f2,long l,double d2,char c,float f1,short s,double d1,int i)237*b725ae77Skettenis void call2f (float f2, long l, double d2, char c, float f1, short s, double d1, int i)
238*b725ae77Skettenis #else
239e93f7393Sniklas call2f (f2, l, d2, c, f1, s, d1, i)
240e93f7393Sniklas float f2; long l; double d2; char c; float f1; short s; double d1; int i;
241*b725ae77Skettenis #endif
242e93f7393Sniklas {
243e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
244e93f7393Sniklas }
245e93f7393Sniklas
246*b725ae77Skettenis #ifdef PROTOTYPES
call2g(long l,double d2,char c,float f1,short s,double d1,int i,float f2)247*b725ae77Skettenis void call2g (long l, double d2, char c, float f1, short s, double d1, int i, float f2)
248*b725ae77Skettenis #else
249e93f7393Sniklas call2g (l, d2, c, f1, s, d1, i, f2)
250e93f7393Sniklas long l; double d2; char c; float f1; short s; double d1; int i; float f2;
251*b725ae77Skettenis #endif
252e93f7393Sniklas {
253e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
254e93f7393Sniklas }
255e93f7393Sniklas
256*b725ae77Skettenis #ifdef PROTOTYPES
call2h(double d2,char c,float f1,short s,double d1,int i,float f2,long l)257*b725ae77Skettenis void call2h (double d2, char c, float f1, short s, double d1, int i, float f2, long l)
258*b725ae77Skettenis #else
259e93f7393Sniklas call2h (d2, c, f1, s, d1, i, f2, l)
260e93f7393Sniklas double d2; char c; float f1; short s; double d1; int i; float f2; long l;
261*b725ae77Skettenis #endif
262e93f7393Sniklas {
263e93f7393Sniklas c = 'a'; f1 = 0.0; s = 5; d1 = 0.0; i = 6; f2 = 0.1; l = 7; d2 = 0.2;
264e93f7393Sniklas }
265e93f7393Sniklas
266*b725ae77Skettenis #ifdef PROTOTYPES
call2i(char c1,float f1,char c2,char c3,double d1,char c4,char c5,char c6,float f2,short s,char c7,double d2)267*b725ae77Skettenis void call2i (char c1, float f1, char c2, char c3, double d1, char c4, char c5, char c6, float f2, short s, char c7, double d2)
268*b725ae77Skettenis #else
269e93f7393Sniklas call2i (c1, f1, c2, c3, d1, c4, c5, c6, f2, s, c7, d2)
270e93f7393Sniklas char c1; float f1; char c2; char c3; double d1; char c4; char c5; char c6;
271e93f7393Sniklas float f2; short s; char c7; double d2;
272*b725ae77Skettenis #endif
273e93f7393Sniklas {
274e93f7393Sniklas c1 = 'a'; f1 = 0.0; c2 = 5; d1 = 0.0; c3 = 6; f2 = 0.1; c4 = 7; d2 = 0.2;
275e93f7393Sniklas c5 = 's'; c6 = 'f'; c7 = 'z'; s = 77;
276e93f7393Sniklas }
277e93f7393Sniklas
278e93f7393Sniklas
279e93f7393Sniklas /* Test pointers to various integral and floating types. */
280e93f7393Sniklas
281e93f7393Sniklas
282*b725ae77Skettenis #ifdef PROTOTYPES
call3a(char * cp,short * sp,int * ip,long * lp)283*b725ae77Skettenis void call3a (char *cp, short *sp, int *ip, long *lp)
284*b725ae77Skettenis #else
285e93f7393Sniklas call3a (cp, sp, ip, lp)
286e93f7393Sniklas char *cp; short *sp; int *ip; long *lp;
287*b725ae77Skettenis #endif
288e93f7393Sniklas {
289e93f7393Sniklas cp = 0; sp = 0; ip = 0; lp = 0;
290e93f7393Sniklas }
291e93f7393Sniklas
292*b725ae77Skettenis #ifdef PROTOTYPES
call3b(unsigned char * ucp,unsigned short * usp,unsigned int * uip,unsigned long * ulp)293*b725ae77Skettenis void call3b (unsigned char *ucp, unsigned short *usp, unsigned int *uip, unsigned long *ulp)
294*b725ae77Skettenis #else
295e93f7393Sniklas call3b (ucp, usp, uip, ulp)
296e93f7393Sniklas unsigned char *ucp; unsigned short *usp; unsigned int *uip;
297e93f7393Sniklas unsigned long *ulp;
298*b725ae77Skettenis #endif
299e93f7393Sniklas {
300e93f7393Sniklas ucp = 0; usp = 0; uip = 0; ulp = 0;
301e93f7393Sniklas }
302e93f7393Sniklas
303*b725ae77Skettenis #ifdef PROTOTYPES
call3c(float * fp,double * dp)304*b725ae77Skettenis void call3c (float *fp, double *dp)
305*b725ae77Skettenis #else
306e93f7393Sniklas call3c (fp, dp)
307e93f7393Sniklas float *fp; double *dp;
308*b725ae77Skettenis #endif
309e93f7393Sniklas {
310e93f7393Sniklas fp = 0; dp = 0;
311e93f7393Sniklas }
312e93f7393Sniklas
313e93f7393Sniklas
314e93f7393Sniklas /* Test passing structures and unions by reference. */
315e93f7393Sniklas
316e93f7393Sniklas
317*b725ae77Skettenis #ifdef PROTOTYPES
call4a(struct stag * stp)318*b725ae77Skettenis void call4a (struct stag *stp)
319*b725ae77Skettenis #else
320e93f7393Sniklas call4a (stp)
321*b725ae77Skettenis struct stag *stp;
322*b725ae77Skettenis #endif
323*b725ae77Skettenis {stp = 0;}
324e93f7393Sniklas
325*b725ae77Skettenis #ifdef PROTOTYPES
call4b(union utag * unp)326*b725ae77Skettenis void call4b (union utag *unp)
327*b725ae77Skettenis #else
328e93f7393Sniklas call4b (unp)
329e93f7393Sniklas union utag *unp;
330*b725ae77Skettenis #endif
331e93f7393Sniklas {
332e93f7393Sniklas unp = 0;
333e93f7393Sniklas }
334e93f7393Sniklas
335e93f7393Sniklas
336e93f7393Sniklas /* Test passing structures and unions by value. */
337e93f7393Sniklas
338e93f7393Sniklas
339*b725ae77Skettenis #ifdef PROTOTYPES
call5a(struct stag st)340*b725ae77Skettenis void call5a (struct stag st)
341*b725ae77Skettenis #else
342e93f7393Sniklas call5a (st)
343*b725ae77Skettenis struct stag st;
344*b725ae77Skettenis #endif
345*b725ae77Skettenis {st.s1 = 5;}
346e93f7393Sniklas
347*b725ae77Skettenis #ifdef PROTOTYPES
call5b(union utag un)348*b725ae77Skettenis void call5b (union utag un)
349*b725ae77Skettenis #else
350e93f7393Sniklas call5b (un)
351*b725ae77Skettenis union utag un;
352*b725ae77Skettenis #endif
353*b725ae77Skettenis {un.u1 = 7;}
354e93f7393Sniklas
355e93f7393Sniklas
356e93f7393Sniklas /* Test shuffling of args */
357e93f7393Sniklas
358e93f7393Sniklas
call6k()359*b725ae77Skettenis void call6k ()
360e93f7393Sniklas {
361e93f7393Sniklas }
362e93f7393Sniklas
363*b725ae77Skettenis #ifdef PROTOTYPES
call6j(unsigned long ul)364*b725ae77Skettenis void call6j (unsigned long ul)
365*b725ae77Skettenis #else
366e93f7393Sniklas call6j (ul)
367e93f7393Sniklas unsigned long ul;
368*b725ae77Skettenis #endif
369e93f7393Sniklas {
370e93f7393Sniklas ul = ul;
371e93f7393Sniklas call6k ();
372e93f7393Sniklas }
373e93f7393Sniklas
374*b725ae77Skettenis #ifdef PROTOTYPES
call6i(unsigned int ui,unsigned long ul)375*b725ae77Skettenis void call6i (unsigned int ui, unsigned long ul)
376*b725ae77Skettenis #else
377*b725ae77Skettenis call6i (ui, ul)
378*b725ae77Skettenis unsigned int ui; unsigned long ul;
379*b725ae77Skettenis #endif
380e93f7393Sniklas {
381*b725ae77Skettenis ui = ui;
382*b725ae77Skettenis call6j (ul);
383e93f7393Sniklas }
384e93f7393Sniklas
385*b725ae77Skettenis #ifdef PROTOTYPES
call6h(unsigned short us,unsigned int ui,unsigned long ul)386*b725ae77Skettenis void call6h (unsigned short us, unsigned int ui, unsigned long ul)
387*b725ae77Skettenis #else
388*b725ae77Skettenis call6h (us, ui, ul)
389*b725ae77Skettenis unsigned short us; unsigned int ui; unsigned long ul;
390*b725ae77Skettenis #endif
391*b725ae77Skettenis {
392*b725ae77Skettenis us = us;
393*b725ae77Skettenis call6i (ui, ul);
394*b725ae77Skettenis }
395*b725ae77Skettenis
396*b725ae77Skettenis #ifdef PROTOTYPES
call6g(unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)397*b725ae77Skettenis void call6g (unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
398*b725ae77Skettenis #else
399*b725ae77Skettenis call6g (uc, us, ui, ul)
400*b725ae77Skettenis unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
401*b725ae77Skettenis #endif
402*b725ae77Skettenis {
403*b725ae77Skettenis uc = uc;
404*b725ae77Skettenis call6h (us, ui, ul);
405*b725ae77Skettenis }
406*b725ae77Skettenis
407*b725ae77Skettenis #ifdef PROTOTYPES
call6f(double d,unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)408*b725ae77Skettenis void call6f (double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
409*b725ae77Skettenis #else
410*b725ae77Skettenis call6f (d, uc, us, ui, ul)
411*b725ae77Skettenis double d;
412*b725ae77Skettenis unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
413*b725ae77Skettenis #endif
414*b725ae77Skettenis {
415*b725ae77Skettenis d = d;
416*b725ae77Skettenis call6g (uc, us, ui, ul);
417*b725ae77Skettenis }
418*b725ae77Skettenis
419*b725ae77Skettenis #ifdef PROTOTYPES
call6e(float f,double d,unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)420*b725ae77Skettenis void call6e (float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
421*b725ae77Skettenis #else
422*b725ae77Skettenis call6e (f, d, uc, us, ui, ul)
423*b725ae77Skettenis float f; double d;
424*b725ae77Skettenis unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
425*b725ae77Skettenis #endif
426*b725ae77Skettenis {
427*b725ae77Skettenis f = f;
428*b725ae77Skettenis call6f (d, uc, us, ui, ul);
429*b725ae77Skettenis }
430*b725ae77Skettenis
431*b725ae77Skettenis #ifdef PROTOTYPES
call6d(long l,float f,double d,unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)432*b725ae77Skettenis void call6d (long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
433*b725ae77Skettenis #else
434*b725ae77Skettenis call6d (l, f, d, uc, us, ui, ul)
435*b725ae77Skettenis long l; float f; double d;
436*b725ae77Skettenis unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
437*b725ae77Skettenis #endif
438*b725ae77Skettenis {
439*b725ae77Skettenis l = l;
440*b725ae77Skettenis call6e (f, d, uc, us, ui, ul);
441*b725ae77Skettenis }
442*b725ae77Skettenis
443*b725ae77Skettenis #ifdef PROTOTYPES
call6c(int i,long l,float f,double d,unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)444*b725ae77Skettenis void call6c (int i, long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
445*b725ae77Skettenis #else
446*b725ae77Skettenis call6c (i, l, f, d, uc, us, ui, ul)
447*b725ae77Skettenis int i; long l; float f; double d;
448*b725ae77Skettenis unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
449*b725ae77Skettenis #endif
450*b725ae77Skettenis {
451*b725ae77Skettenis i = i;
452*b725ae77Skettenis call6d (l, f, d, uc, us, ui, ul);
453*b725ae77Skettenis }
454*b725ae77Skettenis
455*b725ae77Skettenis #ifdef PROTOTYPES
call6b(short s,int i,long l,float f,double d,unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)456*b725ae77Skettenis void call6b (short s, int i, long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
457*b725ae77Skettenis #else
458*b725ae77Skettenis call6b (s, i, l, f, d, uc, us, ui, ul)
459*b725ae77Skettenis short s; int i; long l; float f; double d;
460*b725ae77Skettenis unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
461*b725ae77Skettenis #endif
462*b725ae77Skettenis {
463*b725ae77Skettenis s = s;
464*b725ae77Skettenis call6c (i, l, f, d, uc, us, ui, ul);
465*b725ae77Skettenis }
466*b725ae77Skettenis
467*b725ae77Skettenis #ifdef PROTOTYPES
call6a(char c,short s,int i,long l,float f,double d,unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)468*b725ae77Skettenis void call6a (char c, short s, int i, long l, float f, double d, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
469*b725ae77Skettenis #else
470*b725ae77Skettenis call6a (c, s, i, l, f, d, uc, us, ui, ul)
471*b725ae77Skettenis char c; short s; int i; long l; float f; double d;
472*b725ae77Skettenis unsigned char uc; unsigned short us; unsigned int ui; unsigned long ul;
473*b725ae77Skettenis #endif
474*b725ae77Skettenis {
475*b725ae77Skettenis c = c;
476*b725ae77Skettenis call6b (s, i, l, f, d, uc, us, ui, ul);
477*b725ae77Skettenis }
478e93f7393Sniklas
479e93f7393Sniklas /* Test shuffling of args, round robin */
480e93f7393Sniklas
481e93f7393Sniklas
482*b725ae77Skettenis #ifdef PROTOTYPES
call7k(char c,int i,short s,long l,float f,unsigned char uc,double d,unsigned short us,unsigned long ul,unsigned int ui)483*b725ae77Skettenis void call7k (char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui)
484*b725ae77Skettenis #else
485*b725ae77Skettenis call7k (c, i, s, l, f, uc, d, us, ul, ui)
486e93f7393Sniklas char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui;
487*b725ae77Skettenis #endif
488e93f7393Sniklas {
489*b725ae77Skettenis c = 'a'; i = 7; s = 8; l = 7; f = 0.3; uc = 44; d = 0.44; us = 77;
490*b725ae77Skettenis ul = 43; ui = 33;
491e93f7393Sniklas }
492e93f7393Sniklas
493*b725ae77Skettenis #ifdef PROTOTYPES
call7j(unsigned int ui,char c,int i,short s,long l,float f,unsigned char uc,double d,unsigned short us,unsigned long ul)494*b725ae77Skettenis void call7j (unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul)
495*b725ae77Skettenis #else
496e93f7393Sniklas call7j (ui, c, i, s, l, f, uc, d, us, ul)
497e93f7393Sniklas unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul;
498*b725ae77Skettenis #endif
499e93f7393Sniklas {
500e93f7393Sniklas call7k (c, i, s, l, f, uc, d, us, ul, ui);
501e93f7393Sniklas }
502e93f7393Sniklas
503*b725ae77Skettenis #ifdef PROTOTYPES
call7i(unsigned long ul,unsigned int ui,char c,int i,short s,long l,float f,unsigned char uc,double d,unsigned short us)504*b725ae77Skettenis void call7i (unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us)
505*b725ae77Skettenis #else
506*b725ae77Skettenis call7i (ul, ui, c, i, s, l, f, uc, d, us)
507*b725ae77Skettenis unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us;
508*b725ae77Skettenis #endif
509e93f7393Sniklas {
510*b725ae77Skettenis call7j (ui, c, i, s, l, f, uc, d, us, ul);
511*b725ae77Skettenis }
512*b725ae77Skettenis
513*b725ae77Skettenis #ifdef PROTOTYPES
call7h(unsigned short us,unsigned long ul,unsigned int ui,char c,int i,short s,long l,float f,unsigned char uc,double d)514*b725ae77Skettenis void call7h (unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc, double d)
515*b725ae77Skettenis #else
516*b725ae77Skettenis call7h (us, ul, ui, c, i, s, l, f, uc, d)
517*b725ae77Skettenis unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc; double d;
518*b725ae77Skettenis #endif
519*b725ae77Skettenis {
520*b725ae77Skettenis call7i (ul, ui, c, i, s, l, f, uc, d, us);
521*b725ae77Skettenis }
522*b725ae77Skettenis
523*b725ae77Skettenis #ifdef PROTOTYPES
call7g(double d,unsigned short us,unsigned long ul,unsigned int ui,char c,int i,short s,long l,float f,unsigned char uc)524*b725ae77Skettenis void call7g (double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f, unsigned char uc)
525*b725ae77Skettenis #else
526*b725ae77Skettenis call7g (d, us, ul, ui, c, i, s, l, f, uc)
527*b725ae77Skettenis double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f; unsigned char uc;
528*b725ae77Skettenis #endif
529*b725ae77Skettenis {
530*b725ae77Skettenis call7h (us, ul, ui, c, i, s, l, f, uc, d);
531*b725ae77Skettenis }
532*b725ae77Skettenis
533*b725ae77Skettenis #ifdef PROTOTYPES
call7f(unsigned char uc,double d,unsigned short us,unsigned long ul,unsigned int ui,char c,int i,short s,long l,float f)534*b725ae77Skettenis void call7f (unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l, float f)
535*b725ae77Skettenis #else
536*b725ae77Skettenis call7f (uc, d, us, ul, ui, c, i, s, l, f)
537*b725ae77Skettenis unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l; float f;
538*b725ae77Skettenis #endif
539*b725ae77Skettenis {
540*b725ae77Skettenis call7g (d, us, ul, ui, c, i, s, l, f, uc);
541*b725ae77Skettenis }
542*b725ae77Skettenis
543*b725ae77Skettenis #ifdef PROTOTYPES
call7e(float f,unsigned char uc,double d,unsigned short us,unsigned long ul,unsigned int ui,char c,int i,short s,long l)544*b725ae77Skettenis void call7e (float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s, long l)
545*b725ae77Skettenis #else
546*b725ae77Skettenis call7e (f, uc, d, us, ul, ui, c, i, s, l)
547*b725ae77Skettenis float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s; long l;
548*b725ae77Skettenis #endif
549*b725ae77Skettenis {
550*b725ae77Skettenis call7f (uc, d, us, ul, ui, c, i, s, l, f);
551*b725ae77Skettenis }
552*b725ae77Skettenis
553*b725ae77Skettenis #ifdef PROTOTYPES
call7d(long l,float f,unsigned char uc,double d,unsigned short us,unsigned long ul,unsigned int ui,char c,int i,short s)554*b725ae77Skettenis void call7d (long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i, short s)
555*b725ae77Skettenis #else
556*b725ae77Skettenis call7d (l, f, uc, d, us, ul, ui, c, i, s)
557*b725ae77Skettenis long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i; short s;
558*b725ae77Skettenis #endif
559*b725ae77Skettenis {
560*b725ae77Skettenis call7e (f, uc, d, us, ul, ui, c, i, s, l);
561*b725ae77Skettenis }
562*b725ae77Skettenis
563*b725ae77Skettenis #ifdef PROTOTYPES
call7c(short s,long l,float f,unsigned char uc,double d,unsigned short us,unsigned long ul,unsigned int ui,char c,int i)564*b725ae77Skettenis void call7c (short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c, int i)
565*b725ae77Skettenis #else
566*b725ae77Skettenis call7c (s, l, f, uc, d, us, ul, ui, c, i)
567*b725ae77Skettenis short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c; int i;
568*b725ae77Skettenis #endif
569*b725ae77Skettenis {
570*b725ae77Skettenis call7d (l, f, uc, d, us, ul, ui, c, i, s);
571*b725ae77Skettenis }
572*b725ae77Skettenis
573*b725ae77Skettenis #ifdef PROTOTYPES
call7b(int i,short s,long l,float f,unsigned char uc,double d,unsigned short us,unsigned long ul,unsigned int ui,char c)574*b725ae77Skettenis void call7b (int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui, char c)
575*b725ae77Skettenis #else
576*b725ae77Skettenis call7b (i, s, l, f, uc, d, us, ul, ui, c)
577*b725ae77Skettenis int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui; char c;
578*b725ae77Skettenis #endif
579*b725ae77Skettenis {
580*b725ae77Skettenis call7c (s, l, f, uc, d, us, ul, ui, c, i);
581*b725ae77Skettenis }
582*b725ae77Skettenis
583*b725ae77Skettenis #ifdef PROTOTYPES
call7a(char c,int i,short s,long l,float f,unsigned char uc,double d,unsigned short us,unsigned long ul,unsigned int ui)584*b725ae77Skettenis void call7a (char c, int i, short s, long l, float f, unsigned char uc, double d, unsigned short us, unsigned long ul, unsigned int ui)
585*b725ae77Skettenis #else
586*b725ae77Skettenis call7a (c, i, s, l, f, uc, d, us, ul, ui)
587*b725ae77Skettenis char c; int i; short s; long l; float f; unsigned char uc; double d; unsigned short us; unsigned long ul; unsigned int ui;
588*b725ae77Skettenis #endif
589*b725ae77Skettenis {
590*b725ae77Skettenis call7b (i, s, l, f, uc, d, us, ul, ui, c);
591e93f7393Sniklas }
592e93f7393Sniklas
593e93f7393Sniklas
594e93f7393Sniklas /* Test printing of structures passed as arguments to recursive functions. */
595e93f7393Sniklas
596e93f7393Sniklas
597e93f7393Sniklas typedef struct s
598e93f7393Sniklas {
599e93f7393Sniklas short s;
600e93f7393Sniklas int i;
601e93f7393Sniklas long l;
602e93f7393Sniklas } SVAL;
603e93f7393Sniklas
hitbottom()604*b725ae77Skettenis void hitbottom ()
605e93f7393Sniklas {
606e93f7393Sniklas }
607e93f7393Sniklas
608*b725ae77Skettenis #ifdef PROTOTYPES
recurse(SVAL a,int depth)609*b725ae77Skettenis void recurse (SVAL a, int depth)
610*b725ae77Skettenis #else
611e93f7393Sniklas void recurse (a, depth)
612e93f7393Sniklas SVAL a;
613e93f7393Sniklas int depth;
614*b725ae77Skettenis #endif
615e93f7393Sniklas {
616e93f7393Sniklas a.s = a.i = a.l = --depth;
617e93f7393Sniklas if (depth == 0)
618e93f7393Sniklas hitbottom ();
619e93f7393Sniklas else
620e93f7393Sniklas recurse (a, depth);
621e93f7393Sniklas }
622e93f7393Sniklas
test_struct_args()623*b725ae77Skettenis void test_struct_args ()
624e93f7393Sniklas {
625e93f7393Sniklas SVAL s; s.s = 5; s.i = 5; s.l = 5;
626e93f7393Sniklas
627e93f7393Sniklas recurse (s, 5);
628e93f7393Sniklas }
629e93f7393Sniklas
630e93f7393Sniklas /* On various machines (pa, 29k, and rs/6000, at least), a function which
631e93f7393Sniklas calls alloca may do things differently with respect to frames. So give
632e93f7393Sniklas it a try. */
633e93f7393Sniklas
634*b725ae77Skettenis #ifdef PROTOTYPES
localvars_after_alloca(char c,short s,int i,long l)635*b725ae77Skettenis void localvars_after_alloca (char c, short s, int i, long l)
636*b725ae77Skettenis #else
637*b725ae77Skettenis void
638e93f7393Sniklas localvars_after_alloca (c, s, i, l)
639e93f7393Sniklas char c;
640e93f7393Sniklas short s;
641e93f7393Sniklas int i;
642e93f7393Sniklas long l;
643*b725ae77Skettenis #endif
644e93f7393Sniklas {
645e93f7393Sniklas #ifdef HAVE_STACK_ALLOCA
646e93f7393Sniklas /* No need to use the alloca.c alloca-on-top-of-malloc; it doesn't
647e93f7393Sniklas test what we are looking for, so if we don't have an alloca which
648e93f7393Sniklas allocates on the stack, just don't bother to call alloca at all. */
649e93f7393Sniklas
650e93f7393Sniklas char *z = alloca (s + 50);
651e93f7393Sniklas #endif
652e93f7393Sniklas c = 'a';
653e93f7393Sniklas s = 5;
654e93f7393Sniklas i = 6;
655e93f7393Sniklas l = 7;
656e93f7393Sniklas }
657e93f7393Sniklas
658*b725ae77Skettenis #ifdef PROTOTYPES
call_after_alloca_subr(char c,short s,int i,long l,unsigned char uc,unsigned short us,unsigned int ui,unsigned long ul)659*b725ae77Skettenis void call_after_alloca_subr (char c, short s, int i, long l, unsigned char uc, unsigned short us, unsigned int ui, unsigned long ul)
660*b725ae77Skettenis #else
661e93f7393Sniklas void
662e93f7393Sniklas call_after_alloca_subr (c, s, i, l, uc, us, ui, ul)
663e93f7393Sniklas char c; int i; short s; long l; unsigned char uc; unsigned short us; unsigned long ul; unsigned int ui;
664*b725ae77Skettenis #endif
665e93f7393Sniklas {
666e93f7393Sniklas c = 'a';
667e93f7393Sniklas i = 7; s = 8; l = 7; uc = 44; us = 77;
668e93f7393Sniklas ul = 43; ui = 33;
669e93f7393Sniklas }
670e93f7393Sniklas
671*b725ae77Skettenis #ifdef PROTOTYPES
call_after_alloca(char c,short s,int i,long l)672*b725ae77Skettenis void call_after_alloca (char c, short s, int i, long l)
673*b725ae77Skettenis #else
674*b725ae77Skettenis void
675e93f7393Sniklas call_after_alloca (c, s, i, l)
676e93f7393Sniklas char c;
677e93f7393Sniklas short s;
678e93f7393Sniklas int i;
679e93f7393Sniklas long l;
680*b725ae77Skettenis #endif
681e93f7393Sniklas {
682e93f7393Sniklas #ifdef HAVE_STACK_ALLOCA
683e93f7393Sniklas /* No need to use the alloca.c alloca-on-top-of-malloc; it doesn't
684e93f7393Sniklas test what we are looking for, so if we don't have an alloca which
685e93f7393Sniklas allocates on the stack, just don't bother to call alloca at all. */
686e93f7393Sniklas
687e93f7393Sniklas char *z = alloca (s + 50);
688e93f7393Sniklas #endif
689e93f7393Sniklas call_after_alloca_subr (c, s, i, l, 'b', 11, 12, (unsigned long)13);
690e93f7393Sniklas }
691e93f7393Sniklas
692e93f7393Sniklas
693e93f7393Sniklas
694e93f7393Sniklas /* The point behind this test is the PA will call this indirectly
695e93f7393Sniklas through dyncall. Unlike the indirect calls to call0a, this test
696e93f7393Sniklas will require a trampoline between dyncall and this function on the
697e93f7393Sniklas call path, then another trampoline on between this function and main
698e93f7393Sniklas on the return path. */
699*b725ae77Skettenis #ifdef PROTOTYPES
call_with_trampolines(double d1)700*b725ae77Skettenis double call_with_trampolines (double d1)
701*b725ae77Skettenis #else
702e93f7393Sniklas double
703e93f7393Sniklas call_with_trampolines (d1)
704e93f7393Sniklas double d1;
705*b725ae77Skettenis #endif
706e93f7393Sniklas {
707e93f7393Sniklas return d1;
708e93f7393Sniklas } /* End of call_with_trampolines, this comment is needed by funcargs.exp */
709e93f7393Sniklas
710e93f7393Sniklas /* Dummy functions which the testsuite can use to run to, etc. */
711e93f7393Sniklas
712e93f7393Sniklas void
marker_indirect_call()713e93f7393Sniklas marker_indirect_call () {}
714e93f7393Sniklas
715e93f7393Sniklas void
marker_call_with_trampolines()716e93f7393Sniklas marker_call_with_trampolines () {}
717e93f7393Sniklas
main()718*b725ae77Skettenis int main ()
719e93f7393Sniklas {
720*b725ae77Skettenis void (*pointer_to_call0a) (char, short, int, long) = (void (*)(char, short, int, long))call0a;
721*b725ae77Skettenis double (*pointer_to_call_with_trampolines) (double) = call_with_trampolines;
722e93f7393Sniklas
723e93f7393Sniklas #ifdef usestubs
724e93f7393Sniklas set_debug_traps();
725e93f7393Sniklas breakpoint();
726e93f7393Sniklas #endif
727e93f7393Sniklas /* Test calling with basic integer types */
728e93f7393Sniklas call0a (c, s, i, l);
729e93f7393Sniklas call0b (s, i, l, c);
730e93f7393Sniklas call0c (i, l, c, s);
731e93f7393Sniklas call0d (l, c, s, i);
732e93f7393Sniklas call0e (c, l, c, i, c, s, c, c);
733e93f7393Sniklas
734e93f7393Sniklas /* Test calling with unsigned integer types */
735e93f7393Sniklas call1a (uc, us, ui, ul);
736e93f7393Sniklas call1b (us, ui, ul, uc);
737e93f7393Sniklas call1c (ui, ul, uc, us);
738e93f7393Sniklas call1d (ul, uc, us, ui);
739e93f7393Sniklas call1e (uc, ul, uc, ui, uc, us, uc, uc);
740e93f7393Sniklas
741e93f7393Sniklas /* Test calling with integral types mixed with floating point types */
742e93f7393Sniklas call2a (c, f, s, d, i, f, l, d);
743e93f7393Sniklas call2b (f, s, d, i, f, l, d, c);
744e93f7393Sniklas call2c (s, d, i, f, l, d, c, f);
745e93f7393Sniklas call2d (d, i, f, l, d, c, f, s);
746e93f7393Sniklas call2e (i, f, l, d, c, f, s, d);
747e93f7393Sniklas call2f (f, l, d, c, f, s, d, i);
748e93f7393Sniklas call2g (l, d, c, f, s, d, i, f);
749e93f7393Sniklas call2h (d, c, f, s, d, i, f, l);
750*b725ae77Skettenis call2i (c, f, c, c, d, c, c, c, f, s, c, d);
751e93f7393Sniklas
752e93f7393Sniklas /* Test dereferencing pointers to various integral and floating types */
753e93f7393Sniklas
754e93f7393Sniklas call3a (cp, sp, ip, lp);
755e93f7393Sniklas call3b (ucp, usp, uip, ulp);
756e93f7393Sniklas call3c (fp, dp);
757e93f7393Sniklas
758e93f7393Sniklas /* Test dereferencing pointers to structs and unions */
759e93f7393Sniklas
760e93f7393Sniklas call4a (stp);
761e93f7393Sniklas un.u1 = 1;
762e93f7393Sniklas call4b (unp);
763e93f7393Sniklas
764e93f7393Sniklas /* Test calling with structures and unions. */
765e93f7393Sniklas
766e93f7393Sniklas call5a (st);
767e93f7393Sniklas un.u1 = 2;
768e93f7393Sniklas call5b (un);
769e93f7393Sniklas
770e93f7393Sniklas /* Test shuffling of args */
771e93f7393Sniklas
772e93f7393Sniklas call6a (c, s, i, l, f, d, uc, us, ui, ul);
773e93f7393Sniklas call7a (c, i, s, l, f, uc, d, us, ul, ui);
774e93f7393Sniklas
775e93f7393Sniklas /* Test passing structures recursively. */
776e93f7393Sniklas
777e93f7393Sniklas test_struct_args ();
778e93f7393Sniklas
779e93f7393Sniklas localvars_after_alloca (c, s, i, l);
780e93f7393Sniklas
781e93f7393Sniklas call_after_alloca (c, s, i, l);
782e93f7393Sniklas
783e93f7393Sniklas /* This is for localvars_in_indirect_call. */
784e93f7393Sniklas marker_indirect_call ();
785e93f7393Sniklas /* The comment on the following two lines is used by funcargs.exp,
786e93f7393Sniklas don't change it. */
787e93f7393Sniklas (*pointer_to_call0a) (c, s, i, l); /* First step into call0a. */
788e93f7393Sniklas (*pointer_to_call0a) (c, s, i, l); /* Second step into call0a. */
789e93f7393Sniklas marker_call_with_trampolines ();
790e93f7393Sniklas (*pointer_to_call_with_trampolines) (d); /* Test multiple trampolines. */
791*b725ae77Skettenis return 0;
792e93f7393Sniklas }
793