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

            Bug ID: 97840
           Summary: [11 regression] Bogus -Wmaybe-uninitialized
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sch...@linux-m68k.org
  Target Milestone: ---

Created attachment 49562
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49562&action=edit
fs_dir.ii

After commit 520d5ad337e there are many bogus -Wmaybe-uninitialized warnings in
libstdc++ and in the go frontend, the latter causing bootstrap to fail.

$ /opt/gcc/test/Build/./gcc/xgcc -B/opt/gcc/test/Build/./gcc
-Wmaybe-uninitialized -O -S fs_dir.ii  
../../../../../libstdc++-v3/src/c++17/fs_dir.cc: In member function ‘void
std::filesystem::__cxx11::recursive_directory_iterator::pop()’:
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:341:140: warning: ‘<anonymous>’
may be used uninitialized [-Wmaybe-uninitialized]
  341 |     _GLIBCXX_THROW_OR_ABORT(filesystem_error(_M_dirs
      |                                                                        
                                                                   ^
In file included from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/string:55,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/stdexcept:39,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/system_error:41,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/filesystem:44,
                 from ../../../../../libstdc++-v3/src/c++17/fs_dir.cc:30:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h:525:7:
note: by argument 3 of type ‘const std::allocator<char>&’ to
‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
_CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>;
_CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:341:140: note: ‘<anonymous>’
declared here
  341 |     _GLIBCXX_THROW_OR_ABORT(filesystem_error(_M_dirs
      |                                                                        
                                                                   ^
../../../../../libstdc++-v3/src/c++17/fs_dir.cc: In member function
‘std::filesystem::__cxx11::directory_iterator&
std::filesystem::__cxx11::directory_iterator::operator++()’:
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:160:123: warning: ‘<anonymous>’
may be used uninitialized [-Wmaybe-uninitialized]
  160 |     _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                                        
                                                  ^
In file included from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/string:55,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/stdexcept:39,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/system_error:41,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/filesystem:44,
                 from ../../../../../libstdc++-v3/src/c++17/fs_dir.cc:30:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h:525:7:
note: by argument 3 of type ‘const std::allocator<char>&’ to
‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
_CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>;
_CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:160:123: note: ‘<anonymous>’
declared here
  160 |     _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                                        
                                                  ^
In member function ‘bool std::filesystem::__cxx11::_Dir::advance(bool)’,
    inlined from ‘std::filesystem::__cxx11::directory_iterator&
std::filesystem::__cxx11::directory_iterator::operator++()’ at
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:163:23:
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:92:63: warning: ‘<anonymous>’
may be used uninitialized [-Wmaybe-uninitialized]
   92 |       _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                               ^
In file included from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/string:55,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/stdexcept:39,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/system_error:41,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/filesystem:44,
                 from ../../../../../libstdc++-v3/src/c++17/fs_dir.cc:30:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h
 In member function ‘std::filesystem::__cxx11::directory_iterator&
std::filesystem::__cxx11::directory_iterator::operator++()’:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h:525:7:
note: by argument 3 of type ‘const std::allocator<char>&’ to
‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
_CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>;
_CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:92:63: note: ‘<anonymous>’
declared here
   92 |       _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                               ^
In member function ‘bool std::filesystem::__cxx11::_Dir::advance(bool)’,
    inlined from
‘std::filesystem::__cxx11::recursive_directory_iterator::recursive_directory_iterator(const
std::filesystem::__cxx11::path&, std::filesystem::directory_options,
std::error_code*)’ at ../../../../../libstdc++-v3/src/c++17/fs_dir.cc:204:64:
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:92:63: warning: ‘<anonymous>’
may be used uninitialized [-Wmaybe-uninitialized]
   92 |       _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                               ^
In file included from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/string:55,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/stdexcept:39,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/system_error:41,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/filesystem:44,
                 from ../../../../../libstdc++-v3/src/c++17/fs_dir.cc:30:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h
 In constructor
‘std::filesystem::__cxx11::recursive_directory_iterator::recursive_directory_iterator(const
std::filesystem::__cxx11::path&, std::filesystem::directory_options,
std::error_code*)’:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h:525:7:
note: by argument 3 of type ‘const std::allocator<char>&’ to
‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
_CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>;
_CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:92:63: note: ‘<anonymous>’
declared here
   92 |       _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                               ^
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:219:128: warning: ‘<anonymous>’
may be used uninitialized [-Wmaybe-uninitialized]
  219 |         _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                                        
                                                       ^
In file included from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/string:55,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/stdexcept:39,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/system_error:41,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/filesystem:44,
                 from ../../../../../libstdc++-v3/src/c++17/fs_dir.cc:30:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h:525:7:
note: by argument 3 of type ‘const std::allocator<char>&’ to
‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
_CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>;
_CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:219:128: note: ‘<anonymous>’
declared here
  219 |         _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                                        
                                                       ^
../../../../../libstdc++-v3/src/c++17/fs_dir.cc: In member function
‘std::filesystem::__cxx11::recursive_directory_iterator&
std::filesystem::__cxx11::recursive_directory_iterator::operator++()’:
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:267:73: warning: ‘<anonymous>’
may be used uninitialized [-Wmaybe-uninitialized]
  267 |     _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                                        
^
In file included from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/string:55,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/stdexcept:39,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/system_error:41,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/filesystem:44,
                 from ../../../../../libstdc++-v3/src/c++17/fs_dir.cc:30:
/opt/gcc/test/Build/aarch64-suse-linux/libstdc++-v3/include/bits/basic_string.h:525:7:
note: by argument 3 of type ‘const std::allocator<char>&’ to
‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
_CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>;
_CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  525 |       basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
      |       ^~~~~~~~~~~~
../../../../../libstdc++-v3/src/c++17/fs_dir.cc:267:73: note: ‘<anonymous>’
declared here
  267 |     _GLIBCXX_THROW_OR_ABORT(filesystem_error(
      |                                                                        
^

Reply via email to