PR middle-end/52640
[official-gcc.git] / gcc / testsuite / gcc.c-torture / compile / limits-externdecl.c
blob070db973da85d6349ae788622031236352ee34ef
1 /* Inspired by the test case for PR middle-end/52640. */
3 typedef struct
5 char *value;
6 } REFERENCE;
8 /* Add a few "extern int Xxxxxx ();" declarations. */
9 #undef DEF
10 #undef LIM1
11 #undef LIM2
12 #undef LIM3
13 #undef LIM4
14 #undef LIM5
15 #undef LIM6
16 #define DEF(x) extern int x ()
17 #define LIM1(x) DEF(x##0); DEF(x##1); DEF(x##2); DEF(x##3); DEF(x##4); \
18 DEF(x##5); DEF(x##6); DEF(x##7); DEF(x##8); DEF(x##9);
19 #define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
20 LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
21 #define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
22 LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
23 #define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
24 LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
25 #define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
26 LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
27 #define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
28 LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
29 LIM5 (X);
31 /* Add references to them, or GCC will simply ignore the extern decls. */
32 #undef DEF
33 #undef LIM1
34 #undef LIM2
35 #undef LIM3
36 #undef LIM4
37 #undef LIM5
38 #undef LIM6
39 #define DEF(x) (char *) x
40 #define LIM1(x) DEF(x##0), DEF(x##1), DEF(x##2), DEF(x##3), DEF(x##4), \
41 DEF(x##5), DEF(x##6), DEF(x##7), DEF(x##8), DEF(x##9),
42 #define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
43 LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9)
44 #define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
45 LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
46 #define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
47 LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
48 #define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
49 LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
50 #define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
51 LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
52 REFERENCE references[] = {
53 LIM5 (X)