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 FrobList(ItemList * l)14void 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 } 37