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

--- Comment #13 from Jonathan Wakely <redi at gcc dot gnu.org> ---
When committed to trunk this caused a regression:
  | FAIL: g++.dg/torture/pr118521.C -O1  (test for excess errors)
See https://gcc.gnu.org/pipermail/gcc-regression/2026-May/083775.html for
discussion.

However, I don't see that on trunk now.

That test does still fail when backported to gcc-16 though:

Executing on host: /tmp/build16/gcc/testsuite/g++1/../../xg++
-B/tmp/build16/gcc/testsuite/g++1/../../ 
/home/test/src/gcc-16/gcc/testsuite/g++.dg/torture/pr118521.C   
-fdiagnostics-plain-output  -nostdinc++
-I/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu
-I/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include
-I/home/test/src/gcc-16/libstdc++-v3/libsupc++
-I/home/test/src/gcc-16/libstdc++-v3/include/backward
-I/home/test/src/gcc-16/libstdc++-v3/testsuite/util -fmessage-length=0   -O1 
-Wall  -S -o pr118521.s    (timeout = 300)
spawn -ignore SIGHUP /tmp/build16/gcc/testsuite/g++1/../../xg++
-B/tmp/build16/gcc/testsuite/g++1/../../
/home/test/src/gcc-16/gcc/testsuite/g++.dg/torture/pr118521.C
-fdiagnostics-plain-output -nostdinc++
-I/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu
-I/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include
-I/home/test/src/gcc-16/libstdc++-v3/libsupc++
-I/home/test/src/gcc-16/libstdc++-v3/include/backward
-I/home/test/src/gcc-16/libstdc++-v3/testsuite/util -fmessage-length=0 -O1
-Wall -S -o pr118521.s
In file included from
/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/vector:67,
                 from
/home/test/src/gcc-16/gcc/testsuite/g++.dg/torture/pr118521.C:5: 
In function '_ForwardIterator std::uninitialized_fill_n(_ForwardIterator,
_Size, const _Tp&) [with _ForwardIterator = char*; _Size = long unsigned int;
_Tp = char]',
    inlined from 'constexpr _ForwardIterator
std::__uninitialized_fill_n_a(_ForwardIterator, _Size, const _Tp&,
allocator<_Tp>&) [with _ForwardIterator = char*; _Size = long unsigned int; _Tp
= char; _Tp2 = char]' at
/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_uninitialized.h:778:39,
    inlined from 'constexpr void std::vector<_Tp,
_Alloc>::_M_fill_append(size_type, const value_type&) [with _Tp = char; _Alloc
= std::allocator<char>]' at
/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/vector.tcc:776:36,
    inlined from 'constexpr void std::vector<_Tp,
_Alloc>::_M_fill_insert(iterator, size_type, const value_type&) [with _Tp =
char; _Alloc = std::allocator<char>]' at
/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/vector.tcc:668:20,
    inlined from 'constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp,
_Alloc>::insert(const_iterator, size_type, const value_type&) [with _Tp = char;
_Alloc = std::allocator<char>]' at
/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_vector.h:1565:16,
 
    inlined from 'void foo()' at
/home/test/src/gcc-16/gcc/testsuite/g++.dg/torture/pr118521.C:12:11:
/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_uninitialized.h:577:39:
warning: 'void* __builtin_memset(void*, int, long unsigned int)' offset [2, 3]
is out of the bounds [0, 2] [-Warray-bounds=]
PASS: g++.dg/torture/pr118521.C   -O1   at line 5 (test for bogus messages,
line )
FAIL: g++.dg/torture/pr118521.C   -O1  (test for excess errors)
Excess errors:
/tmp/build16/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_uninitialized.h:577:39:
warning: 'void* __builtin_memset(void*, int, long unsigned int)' offset [2, 3]
is out of the bounds [0, 2] [-Warray-bounds=]

Reply via email to