During compilation of libstdc++ for i686-pc-mingw32, I noticed this warning: ../../../../gcc44-svn/libstdc++-v3/src/atomic.cc:83: warning: 'd' is used uninitialized in this function ../../../../gcc44-svn/libstdc++-v3/src/atomic.cc:83: note: 'd' was declared here Notice the 'is used' and not 'maybe used'. The warning was noted with gcc shapshot r149016 from gcc-4_4-branch. Does not happen for x86_64-pc-mingw32. The toolchain was compiled against mingw-w64 header-set and crt.
Benjamin, can you have a look? To me, it seems a back-end issue in the compiler, because I don't see anything wrong in the code...
Yes, I will look at this. I think Ben Elliston pointed this out right after 4.4.0 was released, along with some other uninitialized warnings that I then fixed. Apparently this is also visible on ppc.
See also PR40825.
Subject: Bug 40654 Author: bkoz Date: Fri Oct 16 07:47:33 2009 New Revision: 152895 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152895 Log: 2009-10-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/40654 PR libstdc++/40826 * src/atomic.cc (atomic_flag_test_and_set_explicit): Add static_cast from base to derived. (atomic_flag_clear_explicit): Same. * include/bits/atomic_2.h (__atomic2::atomic_flag): Public derivation. Remove value type constructor. * include/bits/atomic_0.h (__atomic0::atomic_flag): Same. * include/std/future (_Future_state): Use ATOMIC_FLAG_INIT to initialized the atomic_flag member. Added: trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/ trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.c trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/atomic_0.h trunk/libstdc++-v3/include/bits/atomic_2.h trunk/libstdc++-v3/include/std/future trunk/libstdc++-v3/src/atomic.cc
Any chance for a backport to 4.4 ?
Subject: Bug 40654 Author: bkoz Date: Sun Oct 18 03:30:03 2009 New Revision: 152965 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152965 Log: 2009-10-16 Benjamin Kosnik <bkoz@redhat.com> * include/c_compatibility/stdatomic.h: Include cstdatomic if __cplusplus. 2009-10-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/40654 PR libstdc++/40826 * src/atomic.cc (atomic_flag_test_and_set_explicit): Add static_cast from base to derived. (atomic_flag_clear_explicit): Same. * include/bits/atomic_2.h (__atomic2::atomic_flag): Public derivation. Remove value type constructor. * include/bits/atomic_0.h (__atomic0::atomic_flag): Same. * include/std/future (_Future_state): Use ATOMIC_FLAG_INIT to initialized the atomic_flag member. Added: branches/gcc-4_4-branch/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/ branches/gcc-4_4-branch/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.c branches/gcc-4_4-branch/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc branches/gcc-4_4-branch/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc Modified: branches/gcc-4_4-branch/libstdc++-v3/ChangeLog branches/gcc-4_4-branch/libstdc++-v3/include/bits/atomic_0.h branches/gcc-4_4-branch/libstdc++-v3/include/bits/atomic_2.h branches/gcc-4_4-branch/libstdc++-v3/include/c_compatibility/stdatomic.h branches/gcc-4_4-branch/libstdc++-v3/src/atomic.cc
In for gcc-4.4.3