With today's trunk, #include <complex> void f() { std::complex<double> c1(.0),c2(.0); c1*=c2; } g++ -c -O2 -Wall uninit.cpp Gives: /home/jan/local/gcc-head/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/complex:1289: warning: ‘__t’ is used uninitialized in this function Which is bogus. This hapens only when optimizing with -O[123] AND -g.
-- Summary: [REGRESSION] Bogus 'is used uninitialized...' warning about std::complex<T> Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jan at etpmod dot phys dot tue dot nl CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-suse-linux GCC host triplet: i686-suse-linux GCC target triplet: i686-suse-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23497