1 /* On the i960 any arg bigger than 16 bytes causes all subsequent args
2 to be passed on the stack. We test this. */
3
4 #include <stdarg.h>
5
6 typedef struct {
7 char a[32];
8 } big;
9
10 void
f(big x,char * s,...)11 f (big x, char *s, ...)
12 {
13 va_list ap;
14
15 if (x.a[0] != 'a' || x.a[1] != 'b' || x.a[2] != 'c')
16 abort ();
17 va_start (ap, s);
18 if (va_arg (ap, int) != 42)
19 abort ();
20 if (va_arg (ap, int) != 'x')
21 abort ();
22 if (va_arg (ap, int) != 0)
23 abort ();
24 va_end (ap);
25 }
26
main()27 main ()
28 {
29 static big x = { "abc" };
30
31 f (x, "", 42, 'x', 0);
32 exit (0);
33 }
34