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

     1  /* Origin: Franz Sirl <Franz.Sirl-kernel@lauterbach.com> */
     2  /* { dg-options "-fgnu89-inline" } */
     3  
     4  extern void abort (void);
     5  extern void exit (int);
     6  
     7  #include <stdarg.h>
     8  #include <limits.h>
     9  
    10  #if __LONG_LONG_MAX__ == 9223372036854775807LL
    11  
    12  typedef long long int INT64;
    13  
    14  inline void
    15  debug(int i1, int i2, int i3, int i4, int i5,
    16        int i6, int i7, int i8, int i9, ...)
    17  {
    18    va_list ap;
    19  
    20    va_start (ap, i9);
    21  
    22    if (va_arg (ap,int) != 10)
    23      abort ();
    24    if (va_arg (ap,INT64) != 0x123400005678LL)
    25      abort ();
    26  
    27    va_end (ap);
    28  }
    29  
    30  int
    31  main(void)
    32  {
    33    debug(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0x123400005678LL);
    34    exit(0);
    35  }
    36  
    37  #else
    38  
    39  int
    40  main(void)
    41  {
    42    exit(0);
    43  }
    44  
    45  #endif /* long long 64 bits */