summaryrefslogtreecommitdiffstats
path: root/contrib/libcxxrt/atomic.h
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2013-04-27 19:26:56 +0000
committerdim <dim@FreeBSD.org>2013-04-27 19:26:56 +0000
commit7b9fef1391980ba73dcc1c4ea9b36dcb7f6f7794 (patch)
tree574da279b6e15a5066f7a63afa9c67c6c0e12cc1 /contrib/libcxxrt/atomic.h
parent046db6cecd043a6833060897f100e549196cfceb (diff)
downloadFreeBSD-src-7b9fef1391980ba73dcc1c4ea9b36dcb7f6f7794.zip
FreeBSD-src-7b9fef1391980ba73dcc1c4ea9b36dcb7f6f7794.tar.gz
Merge libcxxrt c812a07cd2f95c1403baf0bbe0366e7618d1d6d3:
* Don't call the _fast version of the TLS accessor in terminate() or unexpected(). 1) TLS may not have been set up yet. 2) When we're in one of these functions, Really Bad Stuff has happened and potentially saving a few cycles really isn't important. * Merge in fixes from FreeBSD trunk to make atomics work with recent clang. MFC after: 1 week
Diffstat (limited to 'contrib/libcxxrt/atomic.h')
-rw-r--r--contrib/libcxxrt/atomic.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/libcxxrt/atomic.h b/contrib/libcxxrt/atomic.h
index 53aa26f..f68faf3 100644
--- a/contrib/libcxxrt/atomic.h
+++ b/contrib/libcxxrt/atomic.h
@@ -9,7 +9,7 @@
* Swap macro that enforces a happens-before relationship with a corresponding
* ATOMIC_LOAD.
*/
-#if __has_feature(cxx_atomic)
+#if __has_builtin(__c11_atomic_exchange)
#define ATOMIC_SWAP(addr, val)\
__c11_atomic_exchange((_Atomic(__typeof__(val))*)addr, val, __ATOMIC_ACQ_REL)
#elif __has_builtin(__sync_swap)
@@ -20,7 +20,7 @@
__sync_lock_test_and_set(addr, val)
#endif
-#if __has_feature(cxx_atomic)
+#if __has_builtin(__c11_atomic_load)
#define ATOMIC_LOAD(addr)\
__c11_atomic_load((_Atomic(__typeof__(*addr))*)addr, __ATOMIC_ACQUIRE)
#else
OpenPOWER on IntegriCloud