1#include <stdarg.h>
2
3struct tiny
4{
5  char c;
6  char d;
7  char e;
8  char f;
9};
10
11f (int n, ...)
12{
13  struct tiny x;
14  int i;
15
16  va_list ap;
17  va_start (ap,n);
18  for (i = 0; i < n; i++)
19    {
20      x = va_arg (ap,struct tiny);
21      if (x.c != i + 10)
22	abort();
23      if (x.d != i + 20)
24	abort();
25      if (x.e != i + 30)
26	abort();
27      if (x.f != i + 40)
28	abort();
29    }
30  {
31    long x = va_arg (ap, long);
32    if (x != 123)
33      abort();
34  }
35  va_end (ap);
36}
37
38main ()
39{
40  struct tiny x[3];
41  x[0].c = 10;
42  x[1].c = 11;
43  x[2].c = 12;
44  x[0].d = 20;
45  x[1].d = 21;
46  x[2].d = 22;
47  x[0].e = 30;
48  x[1].e = 31;
49  x[2].e = 32;
50  x[0].f = 40;
51  x[1].f = 41;
52  x[2].f = 42;
53  f (3, x[0], x[1], x[2], (long) 123);
54  exit(0);
55}
56
57