http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59292
Bug ID: 59292 Summary: Spurious warning: ‘<anonymous>’ is used uninitialized in this function Product: gcc Version: 4.4.7 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: bluesmissionnaire at gmail dot com Created attachment 31290 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31290&action=edit /usr/bin/g++-4.4 -Wall -Wextra -save-temps -c -O1 anonymous_may_be_used_uninitialized.cpp Using g++-4.4 (GCC) 4.4.7 20120313 (Red Hat 4.4.7-1) /usr/bin/g++-4.4 -Wall -Wextra -save-temps -c -O1 anonymous_may_be_used_uninitialized.cpp warns: anonymous_may_be_used_uninitialized.cpp: In function ‘typename T::value_type gccBug::getFirstElement(const T&) [with T = std::map<gccBug::VectorSubclass, gccBug::SomeTemplatedType<gccBug::SomeEnum, unsigned int>, std::less<gccBug::VectorSubclass>, std::allocator<std::pair<const gccBug::VectorSubclass, gccBug::SomeTemplatedType<gccBug::SomeEnum, unsigned int> > > >]’: anonymous_may_be_used_uninitialized.cpp:45: warning: ‘<anonymous>’ may be used uninitialized in this function anonymous_may_be_used_uninitialized.cpp:45: note: ‘<anonymous>’ was declared here When I decrease optimization level to 0 a warning disappears. I checked test files attached to multiple similar bugs (including http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58877 which disappeared after upgrade from 4.4.6 to 4.4.7) but none of them generated this warning. That is why I am creating a new bug. Using http://gcc.godbolt.org/ I confirmed that this bug still occurs on Ubuntu/Linaro 4.4.7-1ubuntu2 and does not occur on newer versions so at least the code attached my serve as an addition to your regression suite.