Patchwork [v3] libstdc++/54005

login
register
mail settings
Submitter Benjamin Kosnik
Date Aug. 30, 2012, 7:27 p.m.
Message ID <20120830122708.15c160b3@coso>
Download mbox | patch
Permalink /patch/180861/
State New
Headers show

Comments

Benjamin Kosnik - Aug. 30, 2012, 7:27 p.m.
> Pretty minor change, as per PR. This version seems more appropriate
> for templatized types.

.. this wasn't right, commentary as per bugzilla. 

tested x86/linux

-benjamin

Patch


2012-08-07  Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/54005 continued
	* include/std/atomic: Use __atomic_lock_free with 
	* include/bits/atomic_base.h: Same.

diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h
index 598e1f1..de098a3 100644
--- a/libstdc++-v3/include/bits/atomic_base.h
+++ b/libstdc++-v3/include/bits/atomic_base.h
@@ -35,6 +35,7 @@ 
 #include <bits/c++config.h>
 #include <stdbool.h>
 #include <stdint.h>
+#include <cstddef>
 #include <bits/atomic_lockfree_defines.h>
 
 namespace std _GLIBCXX_VISIBILITY(default)
@@ -422,11 +423,11 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       bool
       is_lock_free() const noexcept
-      { return __atomic_always_lock_free(sizeof(_M_i), &_M_i); }
+      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
 
       bool
       is_lock_free() const volatile noexcept
-      { return __atomic_always_lock_free(sizeof(_M_i), &_M_i); }
+      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
 
       void
       store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept
@@ -716,11 +717,11 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       bool
       is_lock_free() const noexcept
-      { return __atomic_always_lock_free(_M_type_size(1), &_M_p); }
+      { return __atomic_is_lock_free(_M_type_size(1), NULL); }
 
       bool
       is_lock_free() const volatile noexcept
-      { return __atomic_always_lock_free(_M_type_size(1), &_M_p); }
+      { return __atomic_is_lock_free(_M_type_size(1), NULL); }
 
       void
       store(__pointer_type __p,
diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic
index b5ca606..535a90f 100644
--- a/libstdc++-v3/include/std/atomic
+++ b/libstdc++-v3/include/std/atomic
@@ -184,11 +184,11 @@  _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       bool
       is_lock_free() const noexcept
-      { return __atomic_always_lock_free(sizeof(_M_i), &_M_i); }
+      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
 
       bool
       is_lock_free() const volatile noexcept
-      { return __atomic_always_lock_free(sizeof(_M_i), &_M_i); }
+      { return __atomic_is_lock_free(sizeof(_M_i), NULL); }
 
       void
       store(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept