1  /* { dg-skip-if "Array too big" { "pdp11-*-*" } { "-mint32" } } */
       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  };