1 /* PR tree-optimization/99121 - ICE in -Warray-bounds on a multidimensional
4 { dg-options "-O2 -Wall -ftrack-macro-expansion=0" }
5 { dg-require-effective-target alloca } */
7 #define NOIPA __attribute__ ((noipa))
9 void sink (void*, ...);
10 #define T(a, x) sink (a, x)
13 NOIPA
void a_0_n (int n
)
19 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
20 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
21 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
24 NOIPA
void a_n_0 (int n
)
30 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
31 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
32 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
36 NOIPA
void a_1_n_0 (int n
)
42 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
43 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
44 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
47 NOIPA
void a_1_0_n (int n
)
53 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
54 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
55 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
58 NOIPA
void a_0_1_n (int n
)
64 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
65 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
66 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
69 NOIPA
void a_0_n_1 (int n
)
75 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
76 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
77 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
80 NOIPA
void a_n_0_n (int n
)
86 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
87 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
88 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
91 NOIPA
void a_n_n_0 (int n
)
97 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
98 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
99 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
102 NOIPA
void a_0_n_n (int n
)
108 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
109 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
110 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
113 NOIPA
void a_0_0_n (int n
)
119 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
120 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
121 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
124 NOIPA
void a_n_0_0 (int n
)
130 T (a
, ((int *) a
)[0]); // { dg-warning "\\\[-Warray-bounds" }
131 T (a
, ((char *) a
)[1]); // { dg-warning "\\\[-Warray-bounds" }
132 T (a
, ((float *) a
)[n
]); // { dg-warning "\\\[-Warray-bounds" }
135 NOIPA
void a_n_n_n (int n
)
141 T (a
, ((int *) a
)[-1]); // { dg-warning "\\\[-Warray-bounds" "pr99140" }
142 T (a
, ((int *) a
)[0]);
143 T (a
, ((char *) a
)[1]);
144 T (a
, ((float *) a
)[n
]);