]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libstdc++/45398 ([C++0x] Missing atomic<_Tp*>::store definition)
authorPaolo Carlini <paolo.carlini@oracle.com>
Tue, 7 Sep 2010 14:05:23 +0000 (14:05 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Tue, 7 Sep 2010 14:05:23 +0000 (14:05 +0000)
2010-09-07  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/45398
* include/std/atomic (atomic<_TP*>::store): Define.

* include/std/atomic (atomic<_TP*>::load, exchange): Define inline.

From-SVN: r163950

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/atomic

index f415c506d97762c080f6915e495e51020c964409..86891510adf2183e0bb036586d1a04d1fc90c477 100644 (file)
@@ -1,3 +1,10 @@
+2010-09-07  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/45398
+       * include/std/atomic (atomic<_TP*>::store): Define.
+
+       * include/std/atomic (atomic<_TP*>::load, exchange): Define inline.
+
 2010-09-06  Jason Merrill  <jason@redhat.com>
 
        * testsuite/libstdc++-abi/abi.exp: Add "libstdc++-abi/" to
index d4f685ced547fa09f3b4d42a91530f0906f5fba5..c94597db6f3a4b825150ca571f1c4c3e0249fa75 100644 (file)
@@ -141,13 +141,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       atomic(_Tp* __v) : atomic_address(__v) { }
 
       void
-      store(_Tp*, memory_order = memory_order_seq_cst);
+      store(_Tp* __v, memory_order __m = memory_order_seq_cst)
+      { atomic_address::store(__v, __m); }
 
       _Tp*
-      load(memory_order = memory_order_seq_cst) const;
+      load(memory_order __m = memory_order_seq_cst) const
+      { return static_cast<_Tp*>(atomic_address::load(__m)); }
 
       _Tp*
-      exchange(_Tp*, memory_order = memory_order_seq_cst);
+      exchange(_Tp* __v, memory_order __m = memory_order_seq_cst)
+      { return static_cast<_Tp*>(atomic_address::exchange(__v, __m)); }
 
       bool
       compare_exchange_weak(_Tp*&, _Tp*, memory_order, memory_order);
@@ -487,17 +490,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       using __base_type::operator=;
     };
 
-
-  template<typename _Tp>
-    _Tp*
-    atomic<_Tp*>::load(memory_order __m) const
-    { return static_cast<_Tp*>(atomic_address::load(__m)); }
-
-  template<typename _Tp>
-    _Tp*
-    atomic<_Tp*>::exchange(_Tp* __v, memory_order __m)
-    { return static_cast<_Tp*>(atomic_address::exchange(__v, __m)); }
-
   template<typename _Tp>
     bool
     atomic<_Tp*>::compare_exchange_weak(_Tp*& __r, _Tp* __v, memory_order __m1,