From d74eef3beb52d29c497e24e9b26d8ff83946793d Mon Sep 17 00:00:00 2001 From: Chris Fairles Date: Thu, 4 Sep 2008 14:35:54 +0000 Subject: [PATCH] mutex (once_flag): Construct __gthread_once_t in a temporary variable before assigning to _M_once... 2008-09-04 Chris Fairles * include/std/mutex (once_flag): Construct __gthread_once_t in a temporary variable before assigning to _M_once to avoid initialization errors. From-SVN: r139986 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/std/mutex | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c1ef36c5ba8..fa5059e25e8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2008-09-04 Chris Fairles + + * include/std/mutex (once_flag): Construct __gthread_once_t in a + temporary variable before assigning to _M_once to avoid initialization + errors. + 2008-09-03 Paolo Carlini * config/abi/pre/gnu.ver: Also export __once_functor_lock; tighten diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex index 5e6ba9c2715..e4ceaf2aac8 100644 --- a/libstdc++-v3/include/std/mutex +++ b/libstdc++-v3/include/std/mutex @@ -615,8 +615,10 @@ namespace std typedef __gthread_once_t __native_type; once_flag() - : _M_once(__GTHREAD_ONCE_INIT) - { } + { + __gthread_once_t __tmp = __GTHREAD_ONCE_INIT; + _M_once = __tmp; + } once_flag(const once_flag&) = delete; once_flag& operator=(const once_flag&) = delete; -- 2.30.2