aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Fairles <chris.fairles@gmail.com>2008-09-04 14:35:54 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2008-09-04 14:35:54 +0000
commitd74eef3beb52d29c497e24e9b26d8ff83946793d (patch)
tree19079e098a5fc22be162b78aa1635d8deb69379b
parentd7f2fbf618e5109a30bbe4a6e03a8e2aad4215aa (diff)
downloadgcc-d74eef3beb52d29c497e24e9b26d8ff83946793d.zip
gcc-d74eef3beb52d29c497e24e9b26d8ff83946793d.tar.gz
gcc-d74eef3beb52d29c497e24e9b26d8ff83946793d.tar.bz2
mutex (once_flag): Construct __gthread_once_t in a temporary variable before assigning to _M_once...
2008-09-04 Chris Fairles <chris.fairles@gmail.com> * 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
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/std/mutex6
2 files changed, 10 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c1ef36c..fa5059e 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2008-09-04 Chris Fairles <chris.fairles@gmail.com>
+
+ * 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 <paolo.carlini@oracle.com>
* 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 5e6ba9c..e4ceaf2 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;