> 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
2012-08-07  Benjamin Kosnik  <b...@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

Reply via email to