131
|
1 /* PR middle-end/63477 - Bogus warning with -O3 -Warray-bounds: array
|
|
2 subscript is above array bounds
|
|
3 { dg-do compile }
|
|
4 { dg-options "-O3 -Warray-bounds" } */
|
|
5
|
|
6 #define MAX_VAL 16
|
|
7
|
|
8 typedef struct
|
|
9 {
|
|
10 int itemList[MAX_VAL + 1];
|
|
11 unsigned int numItems;
|
|
12 } ItemList;
|
|
13
|
|
14 void FrobList (ItemList *l)
|
|
15 {
|
|
16 unsigned int i;
|
|
17
|
|
18 for (i = 0; i < l->numItems - 1; i++)
|
|
19 {
|
|
20 int minVal = l->itemList[i];
|
|
21
|
|
22 unsigned int minIdx = i;
|
|
23 unsigned int idx;
|
|
24
|
|
25 for (idx = i + 1; idx < l->numItems; ++idx) {
|
|
26
|
|
27 if (l->itemList[idx] < minVal) /* { dg-bogus "\\\[-Warray-bounds]" } */
|
|
28 {
|
|
29 minVal = l->itemList[idx];
|
|
30 minIdx = idx;
|
|
31 }
|
|
32 }
|
|
33
|
|
34 l->itemList[i] = l->itemList[minIdx];
|
|
35 }
|
|
36 }
|