1#include <stdarg.h>
2
3va_list global;
4
5void vat(va_list param, ...)
6{
7  va_list local;
8
9  va_start (local, param);
10  va_copy (global, local);
11  va_copy (param, local);
12  if (va_arg (local, int) != 1)
13    abort();
14  va_end (local);
15  if (va_arg (global, int) != 1)
16    abort();
17  va_end (global);
18  if (va_arg (param, int) != 1)
19    abort();
20  va_end (param);
21
22  va_start (param, param);
23  va_start (global, param);
24  va_copy (local, param);
25  if (va_arg (local, int) != 1)
26    abort();
27  va_end (local);
28  va_copy (local, global);
29  if (va_arg (local, int) != 1)
30    abort();
31  va_end (local);
32  if (va_arg (global, int) != 1)
33    abort();
34  va_end (global);
35  if (va_arg (param, int) != 1)
36    abort();
37  va_end (param);
38}
39
40int main(void)
41{
42  va_list t;
43  vat (t, 1);
44  exit (0);
45}
46