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

     1  /* PR target/44942 */
     2  
     3  #include <stdarg.h>
     4  
     5  void
     6  test1 (int a, int b, int c, int d, int e, int f, int g, long double h, ...)
     7  {
     8    int i;
     9    va_list ap;
    10  
    11    va_start (ap, h);
    12    i = va_arg (ap, int);
    13    if (i != 1234)
    14      __builtin_abort ();
    15    va_end (ap);
    16  }
    17  
    18  void
    19  test2 (int a, int b, int c, int d, int e, int f, int g, long double h, int i,
    20         long double j, int k, long double l, int m, long double n, ...)
    21  {
    22    int o;
    23    va_list ap;
    24  
    25    va_start (ap, n);
    26    o = va_arg (ap, int);
    27    if (o != 1234)
    28      __builtin_abort ();
    29    va_end (ap);
    30  }
    31  
    32  void
    33  test3 (double a, double b, double c, double d, double e, double f,
    34         double g, long double h, ...)
    35  {
    36    double i;
    37    va_list ap;
    38  
    39    va_start (ap, h);
    40    i = va_arg (ap, double);
    41    if (i != 1234.0)
    42      __builtin_abort ();
    43    va_end (ap);
    44  }
    45  
    46  void
    47  test4 (double a, double b, double c, double d, double e, double f, double g,
    48         long double h, double i, long double j, double k, long double l,
    49         double m, long double n, ...)
    50  {
    51    double o;
    52    va_list ap;
    53  
    54    va_start (ap, n);
    55    o = va_arg (ap, double);
    56    if (o != 1234.0)
    57      __builtin_abort ();
    58    va_end (ap);
    59  }
    60  
    61  int
    62  main ()
    63  {
    64    test1 (0, 0, 0, 0, 0, 0, 0, 0.0L, 1234);
    65    test2 (0, 0, 0, 0, 0, 0, 0, 0.0L, 0, 0.0L, 0, 0.0L, 0, 0.0L, 1234);
    66    test3 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0L, 1234.0);
    67    test4 (0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0L, 0.0, 0.0L,
    68  	 0.0, 0.0L, 0.0, 0.0L, 1234.0);
    69    return 0;
    70  }