modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/931004-10.c (about)

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