[Bug tree-optimization/97595] New: [11 Regression] warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Oct 27 15:22:06 GMT 2020


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

            Bug ID: 97595
           Summary: [11 Regression] warning: writing 1 byte into a region
                    of size 0 [-Wstringop-overflow=]
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
                CC: msebor at gcc dot gnu.org
  Target Milestone: ---

This code (reduced from the libstdc++) produces spurious -Wstringop-overflow
diagnostics since r11-3827 when compiled with -Wsystem-headers:

#include <iostream>
template class std::basic_iostream<char>;



In file included from /usr/include/c++/10/bits/nested_exception.h:40,
                 from /usr/include/c++/10/exception:148,
                 from /usr/include/c++/10/ios:39,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from inst.cc:1:
In member function ‘void std::basic_ios<_CharT,
_Traits>::swap(std::basic_ios<_CharT, _Traits>&) [with _CharT = char; _Traits =
std::char_traits<char>]’,
    inlined from ‘void std::basic_istream<_CharT,
_Traits>::swap(std::basic_istream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:634:18,
    inlined from ‘void std::basic_iostream<_CharT,
_Traits>::swap(std::basic_iostream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:882:29,
    inlined from ‘std::basic_iostream<_CharT, _Traits>&
std::basic_iostream<_CharT, _Traits>::operator=(std::basic_iostream<_CharT,
_Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ at
/usr/include/c++/10/istream:876:6:
/usr/include/c++/10/bits/move.h:198:11: warning: writing 1 byte into a region
of size 0 [-Wstringop-overflow=]
In file included from /usr/include/c++/10/iostream:40,
                 from inst.cc:1:
/usr/include/c++/10/istream: In member function ‘std::basic_iostream<_CharT,
_Traits>& std::basic_iostream<_CharT,
_Traits>::operator=(std::basic_iostream<_CharT, _Traits>&&) [with _CharT =
char; _Traits = std::char_traits<char>]’:
/usr/include/c++/10/istream:824:11: note: at offset 224 to object
‘std::basic_iostream<char>::<anonymous>’ with size 16 declared here
In file included from /usr/include/c++/10/bits/nested_exception.h:40,
                 from /usr/include/c++/10/exception:148,
                 from /usr/include/c++/10/ios:39,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from inst.cc:1:
In member function ‘void std::basic_ios<_CharT,
_Traits>::swap(std::basic_ios<_CharT, _Traits>&) [with _CharT = char; _Traits =
std::char_traits<char>]’,
    inlined from ‘void std::basic_istream<_CharT,
_Traits>::swap(std::basic_istream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:634:18,
    inlined from ‘void std::basic_iostream<_CharT,
_Traits>::swap(std::basic_iostream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:882:29,
    inlined from ‘std::basic_iostream<_CharT, _Traits>&
std::basic_iostream<_CharT, _Traits>::operator=(std::basic_iostream<_CharT,
_Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]’ at
/usr/include/c++/10/istream:876:6:
/usr/include/c++/10/bits/move.h:199:11: warning: writing 1 byte into a region
of size 0 [-Wstringop-overflow=]
In file included from /usr/include/c++/10/iostream:40,
                 from inst.cc:1:
/usr/include/c++/10/istream: In member function ‘std::basic_iostream<_CharT,
_Traits>& std::basic_iostream<_CharT,
_Traits>::operator=(std::basic_iostream<_CharT, _Traits>&&) [with _CharT =
char; _Traits = std::char_traits<char>]’:
/usr/include/c++/10/istream:824:11: note: at offset 224 to object
‘std::basic_iostream<char>::<anonymous>’ with size 16 declared here
In file included from /usr/include/c++/10/bits/nested_exception.h:40,
                 from /usr/include/c++/10/exception:148,
                 from /usr/include/c++/10/ios:39,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from inst.cc:1:
In member function ‘void std::basic_ios<_CharT,
_Traits>::swap(std::basic_ios<_CharT, _Traits>&) [with _CharT = char; _Traits =
std::char_traits<char>]’,
    inlined from ‘void std::basic_istream<_CharT,
_Traits>::swap(std::basic_istream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:634:18,
    inlined from ‘void std::basic_iostream<_CharT,
_Traits>::swap(std::basic_iostream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:882:29:
/usr/include/c++/10/bits/move.h:198:11: warning: writing 1 byte into a region
of size 0 [-Wstringop-overflow=]
In file included from /usr/include/c++/10/iostream:40,
                 from inst.cc:1:
/usr/include/c++/10/istream: In member function ‘void
std::basic_iostream<_CharT, _Traits>::swap(std::basic_iostream<_CharT,
_Traits>&) [with _CharT = char; _Traits = std::char_traits<char>]’:
/usr/include/c++/10/istream:824:11: note: at offset 224 to object
‘std::basic_iostream<char>::<anonymous>’ with size 16 declared here
In file included from /usr/include/c++/10/bits/nested_exception.h:40,
                 from /usr/include/c++/10/exception:148,
                 from /usr/include/c++/10/ios:39,
                 from /usr/include/c++/10/ostream:38,
                 from /usr/include/c++/10/iostream:39,
                 from inst.cc:1:
In member function ‘void std::basic_ios<_CharT,
_Traits>::swap(std::basic_ios<_CharT, _Traits>&) [with _CharT = char; _Traits =
std::char_traits<char>]’,
    inlined from ‘void std::basic_istream<_CharT,
_Traits>::swap(std::basic_istream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:634:18,
    inlined from ‘void std::basic_iostream<_CharT,
_Traits>::swap(std::basic_iostream<_CharT, _Traits>&) [with _CharT = char;
_Traits = std::char_traits<char>]’ at /usr/include/c++/10/istream:882:29:
/usr/include/c++/10/bits/move.h:199:11: warning: writing 1 byte into a region
of size 0 [-Wstringop-overflow=]
In file included from /usr/include/c++/10/iostream:40,
                 from inst.cc:1:
/usr/include/c++/10/istream: In member function ‘void
std::basic_iostream<_CharT, _Traits>::swap(std::basic_iostream<_CharT,
_Traits>&) [with _CharT = char; _Traits = std::char_traits<char>]’:
/usr/include/c++/10/istream:824:11: note: at offset 224 to object
‘std::basic_iostream<char>::<anonymous>’ with size 16 declared here


More information about the Gcc-bugs mailing list