Patchwork [v3] libstdc++/45398

login
register
mail settings
Submitter Paolo Carlini
Date Sept. 7, 2010, 2:11 p.m.
Message ID <4C86481F.20607@oracle.com>
Download mbox | patch
Permalink /patch/64023/
State New
Headers show

Comments

Paolo Carlini - Sept. 7, 2010, 2:11 p.m.
Hi,

applied mainline and 4_5-branch. Tested x86_64-linux.

Paolo.

///////////////////////////
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.

Patch

Index: include/std/atomic
===================================================================
--- include/std/atomic	(revision 163946)
+++ include/std/atomic	(working copy)
@@ -141,13 +141,16 @@ 
       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,18 +490,7 @@ 
       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,
 					memory_order __m2)