From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 0204C3858039; Thu, 25 Mar 2021 22:25:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0204C3858039 From: "msebor at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/52167] self-initialization should at least produce use-of-uninitialized warning Date: Thu, 25 Mar 2021 22:25:59 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 4.4.5 X-Bugzilla-Keywords: diagnostic X-Bugzilla-Severity: enhancement X-Bugzilla-Who: msebor at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Resolution: FIXED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: resolution cf_known_to_fail target_milestone bug_status component Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Mar 2021 22:26:00 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D52167 Martin Sebor 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 --- 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 =E2=80=98int main()=E2=80=99: pr52167.C:8:23: warning: =E2=80=98foo=E2=80=99 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_clas= ses.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_strin= g.h:448:7: note: by argument 2 of type =E2=80=98const std::__cxx11::basic_string= &=E2=80=99 to =E2=80=98std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(= const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT =3D char; _Traits =3D std::char_traits; _Alloc =3D std::allocator]=E2=80= =99 declared here 448 | basic_string(const basic_string& __str) | ^~~~~~~~~~~~ pr52167.C:8:16: note: =E2=80=98foo=E2=80=99 declared here 8 | const string foo(foo); | ^~~=