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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |10.1.0
             Status|UNCONFIRMED                 |RESOLVED
   Target Milestone|---                         |11.0
      Known to work|                            |11.0
         Resolution|---                         |FIXED
           Assignee|unassigned at gcc dot gnu.org      |msebor at gcc dot 
gnu.org

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
After r11-1183 GCC detects the overflow as expected:

$ gcc -O2 -S -Wall -Wextra -Wno-array-bounds pr92939.c

pr92939.c: In function ‘f’:
pr92939.c:12:8: warning: writing 1 byte into a region of size 0
[-Wstringop-overflow=]
   12 |   p[1] = 0;    // a[3]    a[3]     a[4]    a[4]    << warns
      |   ~~~~~^~~
pr92939.c:8:8: note: at offset 3 to object ‘a’ with size 3 declared here
    8 |   char a[3], *p = a + n;
      |        ^
pr92939.c:22:9: warning: writing 1 byte into a region of size 0
[-Wstringop-overflow=]
   22 |   p[-2] = 0;   // a[-2]   a[-3]    a[-1]   a[-2]   << should warn
      |   ~~~~~~^~~
pr92939.c:8:8: note: at offset -1 to object ‘a’ with size 3 declared here
    8 |   char a[3], *p = a + n;
      |        ^

Reply via email to