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