modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c (about)

     1  /* { dg-skip-if "ptxas runs out of memory" { nvptx-*-* } { "*" } { "" } } */
     2  
     3  /* { dg-require-effective-target int32plus } */
     4  /* Inspired by the test case for PR middle-end/52640.  */
     5  
     6  typedef struct
     7  {
     8      char *value;
     9  } REFERENCE;
    10  
    11  /* Add a few "extern int Xxxxxx ();" declarations.  */
    12  #undef DEF
    13  #undef LIM1
    14  #undef LIM2
    15  #undef LIM3
    16  #undef LIM4
    17  #undef LIM5
    18  #undef LIM6
    19  #define DEF(x) 	extern int x ()
    20  #define LIM1(x) DEF(x##0); DEF(x##1); DEF(x##2); DEF(x##3); DEF(x##4); \
    21  		DEF(x##5); DEF(x##6); DEF(x##7); DEF(x##8); DEF(x##9);
    22  #define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
    23  		LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
    24  #define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
    25  		LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
    26  #define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
    27  		LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
    28  #define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
    29  		LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
    30  #define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
    31  		LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
    32  LIM5 (X);
    33  
    34  /* Add references to them, or GCC will simply ignore the extern decls.  */
    35  #undef DEF
    36  #undef LIM1
    37  #undef LIM2
    38  #undef LIM3
    39  #undef LIM4
    40  #undef LIM5
    41  #undef LIM6
    42  #define DEF(x)	(char *) x
    43  #define LIM1(x) DEF(x##0), DEF(x##1), DEF(x##2), DEF(x##3), DEF(x##4), \
    44  		DEF(x##5), DEF(x##6), DEF(x##7), DEF(x##8), DEF(x##9),
    45  #define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
    46  		LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
    47  #define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
    48  		LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
    49  #define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
    50  		LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
    51  #define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
    52  		LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
    53  #define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
    54  		LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
    55  REFERENCE references[] = {
    56    LIM5 (X)
    57    0
    58  };