From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 85D9B38582A3; Sat, 19 Aug 2023 06:48:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 85D9B38582A3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1692427723; bh=31tm6J6Pv4GFJqnTbb+wE0aq6gTT5YN4TLDhQc9fvRY=; h=From:To:Subject:Date:From; b=cW26na3S8NKrYGW+UV0+ZbtnoyKUSp+HEa3rliDEazH9wlzA+aDu1y/eaO/Gxc6bC fd6NUICRkHE0VtvdWInAgBxqyNQpcWeLUujfCoamtNP/pmd7K+lZtwatDnQ8yv2Hib gVOL0794L5NdJbYWrKSrYU1wDGFXKbFNrS7FviUM= From: "sjames at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/111073] New: [13/14 regression] False-positive -Wstringop-overflow when building gdb from trunk Date: Sat, 19 Aug 2023 06:48:42 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: sjames at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D111073 Bug ID: 111073 Summary: [13/14 regression] False-positive -Wstringop-overflow when building gdb from trunk Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: sjames at gcc dot gnu.org CC: arsen at gcc dot gnu.org, tromey at gcc dot gnu.org Target Milestone: --- Created attachment 55762 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D55762&action=3Dedit infcall.ii.xz 12.3.1 20230818 is OK, but 13.2.1 20230812 and 14.0.0 20230813 aren't. I filed this over at gdb first: https://sourceware.org/bugzilla/show_bug.cgi?id=3D30780. ``` $ g++-14 -x c++ -I. -I. -I./config -DLOCALEDIR=3D"\"/usr/local/share/loc= ale\"" -DHAVE_CONFIG_H -I./../include/opcode -I../bfd -I./../bfd -I./../include -I./../readline/readline/.. -I./../zlib -I../libdecnumber -I./../libdecnum= ber=20 -I./../gnulib/import -I../gnulib/import -I./.. -I.. -I./../libbacktrace/ -I../libbacktrace/ -DTUI=3D1 -I/usr/include/python3.12 -I/usr/include/python3.12 -I./.. -pthread -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-variable -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-error=3Dmaybe-uninitialized -Wno-mismatched-tags -Wsuggest-override -Wimplicit-fallthrough=3D3 -Wduplicated-cond -Wshadow=3Dlocal -Wdeprecated-copy -Wdeprecated-copy-dtor -Wredundant-move -Wmissing-declarations -Wstrict-null-sentinel -Wformat -Wformat-nonliteral -Werror -g -O2 -c -o infcall.o -MT infcall.o -MMD -= MP -MF ./.deps/infcall.Tpo infcall.c In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/hashtable_policy.h= :36, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/hashtable.h:35, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unordered_map.h:33, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/unordered_map:41, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/functional:63, from ./../gdbsupport/ptid.h:35, from ./../gdbsupport/common-defs.h:206, from defs.h:26, from infcall.c:20: In static member function =E2=80=98static _Up* std::__copy_move<_IsMove, tr= ue, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp =3D value*; _Up =3D value*; bool _IsMove =3D false]=E2=80=99, inlined from =E2=80=98_OI std::__copy_move_a2(_II, _II, _OI) [with bool= _IsMove =3D false; _II =3D value**; _OI =3D value**]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_algobase.h:506= :30, inlined from =E2=80=98_OI std::__copy_move_a1(_II, _II, _OI) [with bool= _IsMove =3D false; _II =3D value**; _OI =3D value**]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_algobase.h:533= :42, inlined from =E2=80=98_OI std::__copy_move_a(_II, _II, _OI) [with bool = _IsMove =3D false; _II =3D value**; _OI =3D value**]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_algobase.h:540= :31, inlined from =E2=80=98_OI std::copy(_II, _II, _OI) [with _II =3D value*= *; _OI =3D value**]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_algobase.h:633= :7, inlined from =E2=80=98static _ForwardIterator std::__uninitialized_copy::__uninit_copy(_InputIterator, _InputIterat= or, _ForwardIterator) [with _InputIterator =3D value**; _ForwardIterator =3D va= lue**]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_uninitialized.= h:147:27, inlined from =E2=80=98_ForwardIterator std::uninitialized_copy(_InputIt= erator, _InputIterator, _ForwardIterator) [with _InputIterator =3D value**; _ForwardIterator =3D value**]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_uninitialized.= h:185:15, inlined from =E2=80=98_ForwardIterator std::__uninitialized_copy_a(_Inp= utIterator, _InputIterator, _ForwardIterator, allocator<_Tp>&) [with _InputIterator =3D value**; _ForwardIterator =3D value**; _Tp =3D value*]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_uninitialized.= h:373:37, inlined from =E2=80=98void std::vector<_Tp, _Alloc>::_M_range_insert(it= erator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator =3D value**; _Tp =3D value*; _Alloc =3D std::allocator]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/vector.tcc:884:38, inlined from =E2=80=98std::vector<_Tp, _Alloc>::iterator std::vector<_T= p, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator =3D value**; =3D void; _Tp =3D valu= e*; _Alloc =3D std::allocator]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_vector.h:1486:= 19, inlined from =E2=80=98value* call_function_by_hand_dummy(value*, type*, gdb::array_view, void (*)(void*, int), void*)=E2=80=99 at infcall.c= :1239:23: /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_algobase.h:437= :30: error: =E2=80=98void* __builtin_memmove(void*, const void*, long unsigned i= nt)=E2=80=99 writing 9 or more bytes into a region of size 0 overflows the destination [-Werror=3Dstringop-overflow=3D] 437 | __builtin_memmove(__result, __first, sizeof(_Tp) * _Num= ); | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/x86_64-pc-linux-gnu/bit= s/c++allocator.h:33, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/allocator.h:46, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/alloc_traits.h:39, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/ext/alloc_traits.h:34, from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/hashtable_policy.h= :39: In member function =E2=80=98_Tp* std::__new_allocator<_Tp>::allocate(size_t= ype, const void*) [with _Tp =3D value*]=E2=80=99, inlined from =E2=80=98static _Tp* std::allocator_traits >::allocate(allocator_type&, size_type) [with _Tp =3D value*]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/alloc_traits.h:482= :28, inlined from =E2=80=98std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp =3D valu= e*; _Alloc =3D std::allocator]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_vector.h:378:3= 3, inlined from =E2=80=98void std::vector<_Tp, _Alloc>::_M_range_insert(it= erator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator =3D value**; _Tp =3D value*; _Alloc =3D std::allocator]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/vector.tcc:875:40, inlined from =E2=80=98std::vector<_Tp, _Alloc>::iterator std::vector<_T= p, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator =3D value**; =3D void; _Tp =3D valu= e*; _Alloc =3D std::allocator]=E2=80=99 at /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/stl_vector.h:1486:= 19, inlined from =E2=80=98value* call_function_by_hand_dummy(value*, type*, gdb::array_view, void (*)(void*, int), void*)=E2=80=99 at infcall.c= :1239:23: /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/new_allocator.h:15= 1:55: note: at offset [-9223372036854775808, -1] into destination object of size = [8, 9223372036854775800] allocated by =E2=80=98operator new=E2=80=99 151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp))); | ^ cc1plus: all warnings being treated as errors ```=