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

--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Created attachment 49449
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49449&action=edit
preprocessed source, unreduced, gzipped

Here's another example that produces this kind of warning, this time from the
libstdc++ sources (when built with -Wsystem-headers -Werror)

It seems to be complaining about the std::allocator<char> object, which is an
empty class so (1) who cares if it's uninitialized and (2) it's not
uninitialized.

$ ~/gcc/11/bin/g++ -O2 -Wall cow-fs_path.ii -c      
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/string:55,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/stdexcept:38,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/system_error:40,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:43,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
In static member function ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&,
std::forward_iterator_tag) [with _FwdIterator = const char*; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’,
    inlined from ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&,
std::forward_iterator_tag) [with _FwdIterator = const char*; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:589:7,
    inlined from ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with
_InIterator = const char*; _CharT = char; _Traits = std::char_traits<char>;
_Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:5151:30,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits,
_Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits =
std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3620:9,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(std::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper,
const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3541:65,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(const _Tp&, const _Alloc&) [with _Tp =
std::basic_string_view<char>; <template-parameter-2-2> = void; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3731:58,
    inlined from ‘std::filesystem::path::path(const _Source&,
std::filesystem::path::format) [with _Source = std::basic_string_view<char>;
_Require = std::filesystem::path]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:304:9,
    inlined from ‘void
std::filesystem::path::_M_concat(std::basic_string_view<char>)’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:340:24:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:604:36:
warning: ‘<anonymous>’ may be used uninitialized [-Wmaybe-uninitialized]
  604 |         _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
      |                     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/string:55,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/stdexcept:38,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/system_error:40,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:43,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:
In member function ‘void
std::filesystem::path::_M_concat(std::basic_string_view<char>)’:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:980:5:
note: by argument 3 of type ‘const std::allocator<char>&’ to ‘static
std::basic_string<_CharT, _Traits, _Alloc>::_Rep* std::basic_string<_CharT,
_Traits, _Alloc>::_Rep::_S_create(std::basic_string<_CharT, _Traits,
_Alloc>::size_type, std::basic_string<_CharT, _Traits, _Alloc>::size_type,
const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  980 |     basic_string<_CharT, _Traits, _Alloc>::_Rep::
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:44,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:304:9:
note: ‘<anonymous>’ declared here
  304 |       : _M_pathname(_S_convert(__detail::__effective_range(__source)))
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/string:55,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/stdexcept:38,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/system_error:40,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:43,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
In static member function ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&,
std::forward_iterator_tag) [with _FwdIterator = const char*; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’,
    inlined from ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&,
std::forward_iterator_tag) [with _FwdIterator = const char*; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:589:7,
    inlined from ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with
_InIterator = const char*; _CharT = char; _Traits = std::char_traits<char>;
_Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:5151:30,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits,
_Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits =
std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3620:9,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(std::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper,
const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3541:65,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(const _Tp&, const _Alloc&) [with _Tp =
std::basic_string_view<char>; <template-parameter-2-2> = void; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3731:58,
    inlined from ‘std::filesystem::path::path(const _Source&,
std::filesystem::path::format) [with _Source = char [2]; _Require =
std::filesystem::path]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:304:9,
    inlined from ‘std::filesystem::__detail::_Path<_Source>&
std::filesystem::path::operator=(const _Source&) [with _Source = char [2]]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:340:24:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:604:36:
warning: ‘<anonymous>’ may be used uninitialized [-Wmaybe-uninitialized]
  604 |         _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
      |                     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/string:55,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/stdexcept:38,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/system_error:40,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:43,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:
In function ‘std::filesystem::__detail::_Path<_Source>&
std::filesystem::path::operator=(const _Source&) [with _Source = char [2]]’:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:980:5:
note: by argument 3 of type ‘const std::allocator<char>&’ to ‘static
std::basic_string<_CharT, _Traits, _Alloc>::_Rep* std::basic_string<_CharT,
_Traits, _Alloc>::_Rep::_S_create(std::basic_string<_CharT, _Traits,
_Alloc>::size_type, std::basic_string<_CharT, _Traits, _Alloc>::size_type,
const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  980 |     basic_string<_CharT, _Traits, _Alloc>::_Rep::
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:44,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:304:9:
note: ‘<anonymous>’ declared here
  304 |       : _M_pathname(_S_convert(__detail::__effective_range(__source)))
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/string:55,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/stdexcept:38,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/system_error:40,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:43,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
In static member function ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&,
std::forward_iterator_tag) [with _FwdIterator = const char*; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’,
    inlined from ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&,
std::forward_iterator_tag) [with _FwdIterator = const char*; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:589:7,
    inlined from ‘static _CharT* std::basic_string<_CharT, _Traits,
_Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with
_InIterator = const char*; _CharT = char; _Traits = std::char_traits<char>;
_Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:5151:30,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits,
_Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits =
std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3620:9,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(std::basic_string<_CharT, _Traits, _Alloc>::__sv_wrapper,
const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3541:65,
    inlined from ‘std::basic_string<_CharT, _Traits,
_Alloc>::basic_string(const _Tp&, const _Alloc&) [with _Tp =
std::basic_string_view<char>; <template-parameter-2-2> = void; _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:3731:58,
    inlined from ‘std::filesystem::path::path(const _Source&,
std::filesystem::path::format) [with _Source = std::basic_string_view<char>;
_Require = std::filesystem::path]’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:304:9,
    inlined from ‘void
std::filesystem::path::_M_append(std::basic_string_view<char>)’ at
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:340:24:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:604:36:
warning: ‘<anonymous>’ may be used uninitialized [-Wmaybe-uninitialized]
  604 |         _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a);
      |                     ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/string:55,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/stdexcept:38,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/system_error:40,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_fwd.h:35,
                 from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:43,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:
In member function ‘void
std::filesystem::path::_M_append(std::basic_string_view<char>)’:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:980:5:
note: by argument 3 of type ‘const std::allocator<char>&’ to ‘static
std::basic_string<_CharT, _Traits, _Alloc>::_Rep* std::basic_string<_CharT,
_Traits, _Alloc>::_Rep::_S_create(std::basic_string<_CharT, _Traits,
_Alloc>::size_type, std::basic_string<_CharT, _Traits, _Alloc>::size_type,
const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc =
std::allocator<char>]’ declared here
  980 |     basic_string<_CharT, _Traits, _Alloc>::_Rep::
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/filesystem:44,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/fs_path.cc:34,
                 from
/home/jwakely/src/gcc/libstdc++-v3/src/c++17/cow-fs_path.cc:26:
/home/jwakely/build/powerpc64le-unknown-linux-gnu/libstdc++-v3/include/bits/fs_path.h:304:9:
note: ‘<anonymous>’ declared here
  304 |       : _M_pathname(_S_convert(__detail::__effective_range(__source)))
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to