(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr63477.c
       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  }