modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compat/struct-big.c (about)

     1  typedef struct {int a, b, c, d, e;} T;
     2  
     3  int h (T *);
     4  T g (T);
     5  
     6  #if COMPILER != 1
     7  h (T *x)
     8  {
     9    if (x->a != 0 || x->b != 1 || x->c != 2 || x->d != 3 || x->e != 4)
    10      abort ();
    11  }
    12  #endif
    13  
    14  #if COMPILER != 2
    15  T
    16  g (T x)
    17  {
    18    if (x.a != 13 || x.b != 47 || x.c != 123456 || x.d != -4711 || x.e != -2)
    19      abort ();
    20    x.a = 0;
    21    x.b = 1;
    22    x.c = 2;
    23    x.d = 3;
    24    x.e = 4;
    25    h (&x);
    26    return x;
    27  }
    28  #endif
    29  
    30  #if COMPILER != 1
    31  f ()
    32  {
    33    T x;
    34    x.a = 13;
    35    x.b = 47;
    36    x.c = 123456;
    37    x.d = -4711;
    38    x.e = -2;
    39    g (x);
    40    if (x.a != 13 || x.b != 47 || x.c != 123456 || x.d != -4711 || x.e != -2)
    41      abort ();
    42    x = g (x);
    43    if (x.a != 0 || x.b != 1 || x.c != 2 || x.d != 3 || x.e != 4)
    44      abort ();
    45  }
    46  #endif
    47  
    48  #if COMPILER != 2
    49  main ()
    50  {
    51    f ();
    52    exit (0);
    53  }
    54  #endif