summaryrefslogtreecommitdiff
path: root/atomic.h
diff options
context:
space:
mode:
Diffstat (limited to 'atomic.h')
-rw-r--r--atomic.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/atomic.h b/atomic.h
index bcd8a47ac89d..f68faf325826 100644
--- a/atomic.h
+++ b/atomic.h
@@ -9,9 +9,9 @@
* 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)\
- __atomic_exchange(addr, val, __ATOMIC_ACQ_REL)
+ __c11_atomic_exchange((_Atomic(__typeof__(val))*)addr, val, __ATOMIC_ACQ_REL)
#elif __has_builtin(__sync_swap)
#define ATOMIC_SWAP(addr, val)\
__sync_swap(addr, val)
@@ -20,9 +20,9 @@
__sync_lock_test_and_set(addr, val)
#endif
-#if __has_feature(cxx_atomic)
+#if __has_builtin(__c11_atomic_load)
#define ATOMIC_LOAD(addr)\
- __atomic_load(addr, __ATOMIC_ACQUIRE)
+ __c11_atomic_load((_Atomic(__typeof__(*addr))*)addr, __ATOMIC_ACQUIRE)
#else
#define ATOMIC_LOAD(addr)\
(__sync_synchronize(), *addr)