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

Christophe Lyon <clyon at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clyon at gcc dot gnu.org

--- Comment #8 from Christophe Lyon <clyon at gcc dot gnu.org> ---
(In reply to Martin Sebor from comment #5)
> Author: msebor
> Date: Wed Aug 28 16:43:56 2019
> New Revision: 274997
> 
> URL: https://gcc.gnu.org/viewcvs?rev=274997&root=gcc&view=rev
> Log:
> PR tree-optimization/91457 - inconsistent warning for writing past the end
> of an array member
> 
> gcc/ChangeLog:
> 
>       PR tree-optimization/91457
>       * builtins.c (component_size): New function.
>       (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF.
>       * builtins.h (compute_objsize): Add argument.
>       * tree-ssa-strlen.c (handle_store): Handle no-warning bit.
>       * tree-vrp.c (vrp_prop::check_array_ref): Return warning result.
>       (vrp_prop::check_mem_ref): Same.
>       (vrp_prop::search_for_addr_array): Set no-warning bit.
>       (check_array_bounds): Same.
> 
> gcc/testsuite/ChangeLog:
> 
>       PR tree-optimization/91457
>       * c-c++-common/Wstringop-overflow-2.c: New test.
>       * g++.dg/warn/Warray-bounds-8.C: New test.
>       * g++.dg/warn/Wstringop-overflow-3.C: New test.
>       * gcc.dg/Wstringop-overflow-15.c: New test.
> 
> 
> Added:
>     trunk/gcc/testsuite/c-c++-common/Wstringop-overflow-2.c
>     trunk/gcc/testsuite/g++.dg/warn/Warray-bounds-8.C
>     trunk/gcc/testsuite/g++.dg/warn/Wstringop-overflow-3.C
>     trunk/gcc/testsuite/gcc.dg/Wstringop-overflow-15.c
> Modified:
>     trunk/gcc/ChangeLog
>     trunk/gcc/builtins.c
>     trunk/gcc/builtins.h
>     trunk/gcc/testsuite/ChangeLog
>     trunk/gcc/tree-ssa-strlen.c
>     trunk/gcc/tree-vrp.c


Hi,

After this was committed, I'm seeing glibc (2.29) build errors for arm and
aarch64, but that's probably true on other targets:
programs/ld-ctype.c: In function 'ctype_finish':
cc1: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
In file included from programs/repertoire.h:24,
                 from programs/localedef.h:32,
                 from programs/ld-ctype.c:35:
programs/charmap.h:63:17: note: destination object declared here
   63 |   unsigned char bytes[0];
      |                 ^~~~~
cc1: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
programs/charmap.h:63:17: note: destination object declared here
cc1: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
programs/charmap.h:63:17: note: destination object declared here
cc1: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
programs/charmap.h:63:17: note: destination object declared here

Reply via email to