http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51798
--- Comment #31 from Richard Henderson <rth at gcc dot gnu.org> 2012-02-13 21:30:42 UTC --- Author: rth Date: Mon Feb 13 21:30:31 2012 New Revision: 184171 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184171 Log: PR libstdc++/51798 continued * include/bits/shared_ptr_base.h (_Sp_counted_base<_S_atomic>::_M_add_ref_lock): Hoist initial load outside compare_exchange loop. * include/tr1/shared_ptr.h: Same. * include/parallel/compatibility.h (__compare_and_swap_32): Use strong version of compare_exchange. (__compare_and_swap_64): Same. * include/profile/impl/profiler_state.h (__gnu_profile::__turn): Same. * libsupc++/guard.cc (__cxa_guard_acquire): Same. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/shared_ptr_base.h trunk/libstdc++-v3/include/parallel/compatibility.h trunk/libstdc++-v3/include/profile/impl/profiler_state.h trunk/libstdc++-v3/include/tr1/shared_ptr.h trunk/libstdc++-v3/libsupc++/guard.cc