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.

Reply via email to