https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86691

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|missing -Warray-bounds due  |missing -Warray-bounds on a
                   |to early folding of         |const array due to early
                   |out-of-bounds accesses      |folding of out-of-bounds
                   |                            |accesses

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
No change in GCC 10.  Here's a test case showing that the same accesses to
non-const arrays are diagnosed.

$ cat pr86691.c && gcc -O2 -Wall -S pr86691.c
      char a[2][3] = { "12", "123" };
const char b[2][3] = { "12", "123" };

int f (int i)
{
  return i ? a[0][0] : a[7][9];   // -Warray-bounds (good)
}

int g (int i)
{
  return i ? b[0][0] : b[7][9];   // missing -Warray-bounds (not good)
}
pr86691.c: In function ‘f’:
pr86691.c:6:28: warning: array subscript 9 is above array bounds of ‘char[3]’
[-Warray-bounds]
    6 |   return i ? a[0][0] : a[7][9];   // -Warray-bounds (good)
      |                        ~~~~^~~

Reply via email to