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

            Bug ID: 124619
           Summary: [16 Regression] FAIL/XPASS:
                    g++.dg/warn/Wstringop-overflow-3.C test for warnings
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: azoff at gcc dot gnu.org
  Target Milestone: ---

Starting with r16-4314-g5e9eecc66867ba, the expected warnings are no longer
generated for thumb/arch=armv7ve+neon/tune=cortex-a7/float-abi=hard/fpu=auto:

(To be able to build r16-4314-g5e9eecc66867ba, I had to do the following extra
patching: `sed -i '/HOST_WIDE_INT align = TYPE_ALIGN_UNIT/s/TYPE_ALIGN_UNIT
.type./GET_MODE_UNIT_SIZE (mode)/' gcc/config/arm/arm.cc`)

Testing warn/Wstringop-overflow-3.C,  -std=gnu++20
...
Executing on host: /build/r16-7849-g1f9879e17466f5/bin/arm-none-eabi-g++ 
/build/gcc_src/gcc/testsuite/g++.dg/warn/Wstringop-overflow-3.C  -mthumb
-march=armv7ve+neon -mtune=cortex-a7 -mfloat-abi=hard -mfpu=auto  
-fdiagnostics-plain-output   -fmessage-length=0  -std=gnu++20 -O2 -Wall
-Wno-array-bounds  -S     -o Wstringop-overflow-3.s    (timeout = 800)
spawn -ignore SIGHUP /build/r16-7849-g1f9879e17466f5/bin/arm-none-eabi-g++
/build/gcc_src/gcc/testsuite/g++.dg/warn/Wstringop-overflow-3.C -mthumb
-march=armv7ve+neon -mtune=cortex-a7 -mfloat-abi=hard -mfpu=auto
-fdiagnostics-plain-output -fmessage-length=0 -std=gnu++20 -O2 -Wall
-Wno-array-bounds -S -o Wstringop-overflow-3.s
...
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: flexarray (test
for warnings, line 15)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 23)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 24)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 25)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 34)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 35)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 36)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 45)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 46)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 47)
FAIL: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 56)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 57)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 58)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 67)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: trailing
zero-length array (test for warnings, line 96)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 104)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 105)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 106)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 115)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 116)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 117)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 126)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 127)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 128)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 152)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 153)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 154)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: trailing
one-element array (test for warnings, line 163)
FAIL: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 171)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 172)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 173)
FAIL: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 182)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 183)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 184)
FAIL: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 193)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 194)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 195)
FAIL: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 204)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 205)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 206)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 227)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 228)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: interior
one-element array (test for warnings, line 237)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 247)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 248)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 258)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 259)
FAIL: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 268)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 269)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 270)
FAIL: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 279)
XPASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 280)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 281)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 289)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 290)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 300)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 301)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: flexarray class
member (test for warnings, line 310)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 313)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 317)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: zero-length
trailing array class member (test for warnings, line 335)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 337)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: one-element
trailing array class member (test for warnings, line 351)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 353)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: large trailing
array class member (test for warnings, line 365)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 367)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 note: large trailing
array class member (test for warnings, line 379)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20  (test for warnings,
line 381)
PASS: g++.dg/warn/Wstringop-overflow-3.C  -std=gnu++20 (test for excess errors)

Similar (maybe even the same) issues can bee seen for the other -std arguments
too.

The same test passes fine on x86_64-pc-linux-gnu.

Reply via email to