1  #include <stdarg.h>
       2  
       3  struct s { int x, y; };
       4  
       5  f (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  
      31  main ()
      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  }