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
6typedef struct {
7  char a[32];
8} big;
9
10void
11f (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
27main ()
28{
29  static big x = { "abc" };
30
31  f (x, "", 42, 'x', 0);
32  exit (0);
33}
34