https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102706
Bug ID: 102706
Summary: [12 regression] -O2 vectorization causes regression in
Warray-bounds-48.c on many targets
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: law at gcc dot gnu.org
Target Milestone: ---
More fallout from enabling auto-vectorization at -O2.
gcc.dg/Warray-bonds-48.c is regressing on most (but not all) of the embedded
targets.
Just picking one semi-randomly, iq2000-elf:
Running target iq2000-sim
Using /usr/share/dejagnu/baseboards/iq2000-sim.exp as board description file
for target.
Using /usr/share/dejagnu/config/sim.exp as generic interface file for target.
Using /usr/share/dejagnu/baseboards/basic-sim.exp as board description file for
target.
Using
/home/jlaw/jenkins/workspace/iq2000-elf/gcc/gcc/testsuite/config/default.exp as
tool-and-target-specific interface file.
Running /home/jlaw/jenkins/workspace/iq2000-elf/gcc/gcc/testsuite/gcc.dg/dg.exp
...
FAIL: gcc.dg/Warray-bounds-48.c (test for excess errors)
=== gcc Summary ===
# of expected passes 38
# of unexpected failures 1
/home/jlaw/jenkins/workspace/iq2000-elf/iq2000-elf-obj/gcc/gcc/xgcc version
12.0.0 20211008 (experimental) (GCC)
>From the log file we see:
FAIL: gcc.dg/Warray-bounds-48.c (test for excess errors)
Excess errors:
/home/jlaw/jenkins/workspace/iq2000-elf/gcc/gcc/testsuite/gcc.dg/Warray-bounds-48.c:33:12:
warning: writing 4 bytes into a region of size 0 [-Wstringop-overflow=]
/home/jlaw/jenkins/workspace/iq2000-elf/gcc/gcc/testsuite/gcc.dg/Warray-bounds-48.c:133:12:
warning: writing 4 bytes into a region of size 0 [-Wstringop-overflow=]
My very cursory examination of the test tells me this is a bogus warning. In
both cases we have allocated enough space to reference array index 0 and 1.
You should be able to reproduce this with a cross compiler without needing a
cross assembler, library, etc.