modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/920501-8.c (about)

     1  #include <stdio.h>
     2  #include <stdarg.h>
     3  
     4  char buf[50];
     5  int
     6  va (int a, double b, int c, ...)
     7  {
     8    va_list ap;
     9    int d, e, f, g, h, i, j, k, l, m, n, o, p;
    10    va_start (ap, c);
    11  
    12    d = va_arg (ap, int);
    13    e = va_arg (ap, int);
    14    f = va_arg (ap, int);
    15    g = va_arg (ap, int);
    16    h = va_arg (ap, int);
    17    i = va_arg (ap, int);
    18    j = va_arg (ap, int);
    19    k = va_arg (ap, int);
    20    l = va_arg (ap, int);
    21    m = va_arg (ap, int);
    22    n = va_arg (ap, int);
    23    o = va_arg (ap, int);
    24    p = va_arg (ap, int);
    25  
    26    sprintf (buf,
    27  	   "%d,%f,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
    28  	   a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);
    29    va_end (ap);
    30  }
    31  
    32  main()
    33  {
    34    va (1, 1.0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
    35    if (strcmp ("1,1.000000,2,3,4,5,6,7,8,9,10,11,12,13,14,15", buf))
    36      abort();
    37    exit(0);
    38  }