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( | ^