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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
      Known to fail|                            |10.2.0, 4.1.0, 4.8.4,
                   |                            |4.9.4, 5.5.0, 6.4.0, 7.2.0,
                   |                            |8.3.0, 9.1.0
   Target Milestone|---                         |11.0
             Status|NEW                         |RESOLVED
          Component|c++                         |tree-optimization

--- Comment #8 from Martin Sebor <msebor at gcc dot gnu.org> ---
GCC 11 (since g:b825a22890740f341eae566af27e18e528cd29a7) diagnoses passing an
uninitialized object by const reference by -Wmaybe-uninitialized:

$ g++ -S -Wall pr52167.C
pr52167.C: In function ‘int main()’:
pr52167.C:8:23: warning: ‘foo’ may be used uninitialized
[-Wmaybe-uninitialized]
    8 |   const string foo(foo);
      |                       ^
In file included from
/build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/string:55,
                 from
/build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/locale_classes.h:40,
                 from
/build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/ios_base.h:41,
                 from
/build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/ios:42,
                 from
/build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/ostream:38,
                 from
/build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/iostream:39,
                 from pr52167.C:1:
/build/gcc-master/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:448:7:
note: by argument 2 of type ‘const std::__cxx11::basic_string<char>&’ to
‘std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const
std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char;
_Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’ declared here
  448 |       basic_string(const basic_string& __str)
      |       ^~~~~~~~~~~~
pr52167.C:8:16: note: ‘foo’ declared here
    8 |   const string foo(foo);
      |                ^~~

Reply via email to