(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
strct-stdarg-1.c
       1  #include <stdarg.h>
       2  
       3  struct tiny
       4  {
       5    char c;
       6    char d;
       7    char e;
       8    char f;
       9    char g;
      10  };
      11  
      12  f (int n, ...)
      13  {
      14    struct tiny x;
      15    int i;
      16  
      17    va_list ap;
      18    va_start (ap,n);
      19    for (i = 0; i < n; i++)
      20      {
      21        x = va_arg (ap,struct tiny);
      22        if (x.c != i + 10)
      23  	abort();
      24        if (x.d != i + 20)
      25  	abort();
      26        if (x.e != i + 30)
      27  	abort();
      28        if (x.f != i + 40)
      29  	abort();
      30        if (x.g != i + 50)
      31  	abort();
      32      }
      33    {
      34      long x = va_arg (ap, long);
      35      if (x != 123)
      36        abort();
      37    }
      38    va_end (ap);
      39  }
      40  
      41  main ()
      42  {
      43    struct tiny x[3];
      44    x[0].c = 10;
      45    x[1].c = 11;
      46    x[2].c = 12;
      47    x[0].d = 20;
      48    x[1].d = 21;
      49    x[2].d = 22;
      50    x[0].e = 30;
      51    x[1].e = 31;
      52    x[2].e = 32;
      53    x[0].f = 40;
      54    x[1].f = 41;
      55    x[2].f = 42;
      56    x[0].g = 50;
      57    x[1].g = 51;
      58    x[2].g = 52;
      59    f (3, x[0], x[1], x[2], (long) 123);
      60    exit(0);
      61  }