1#include <stdarg.h>
2
3struct s { int x, y; };
4
5f (int attr, ...)
6{
7  struct s va_values;
8  va_list va;
9  int i;
10
11  va_start (va, attr);
12
13  if (attr != 2)
14    abort ();
15
16  va_values = va_arg (va, struct s);
17  if (va_values.x != 0xaaaa || va_values.y != 0x5555)
18    abort ();
19
20  attr = va_arg (va, int);
21  if (attr != 3)
22    abort ();
23
24  va_values = va_arg (va, struct s);
25  if (va_values.x != 0xffff || va_values.y != 0x1111)
26    abort ();
27
28  va_end (va);
29}
30
31main ()
32{
33  struct s a, b;
34
35  a.x = 0xaaaa;
36  a.y = 0x5555;
37  b.x = 0xffff;
38  b.y = 0x1111;
39
40  f (2, a, 3, b);
41  exit (0);
42}
43