https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103377
Bug ID: 103377 Summary: [12 Regression] False positive -Werror=array-bounds in gdb since r12-2132-ga110855667782dac7b674d3e328b253b3b3c919b Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: msebor at gcc dot gnu.org Target Milestone: --- Created attachment 51856 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51856&action=edit test-case It's a false positive: $ g++ language.i -O2 -Werror=array-bounds -c In file included from /usr/include/c++/11/functional:65, from ../../gdb/../gdbsupport/ptid.h:35, from ../../gdb/../gdbsupport/common-defs.h:198, from ../../gdb/defs.h:28, from ../../gdb/language.c:31: In function ‘void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = const char**; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(const char*, const char*)>]’, inlined from ‘void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = const char**; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<bool (*)(const char*, const char*)>]’ at /usr/include/c++/11/bits/stl_algo.h:1957:31, inlined from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = const char**; _Compare = bool (*)(const char*, const char*)]’ at /usr/include/c++/11/bits/stl_algo.h:4875:18, inlined from ‘void add_set_language_command()’ at ../../gdb/language.c:492:13, inlined from ‘void _initialize_language()’ at ../../gdb/language.c:1175:28: /usr/include/c++/11/bits/stl_algo.h:1866:32: error: array subscript 19 is outside array bounds of ‘void [136]’ [-Werror=array-bounds] 1866 | std::__insertion_sort(__first, __first + int(_S_threshold), __comp); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In function ‘void add_set_language_command()’, inlined from ‘void _initialize_language()’ at ../../gdb/language.c:1175:28: ../../gdb/language.c:474:117: note: at offset 152 into object of size 136 allocated by ‘operator new []’ 474 | language_names = new const char *[ARRAY_SIZE (language_defn::languages) + 2]; | ^ cc1plus: some warnings being treated as errors