summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authortheraven <theraven@FreeBSD.org>2012-01-16 18:19:53 +0000
committertheraven <theraven@FreeBSD.org>2012-01-16 18:19:53 +0000
commit5a45f730a5625608124e818a7be2c3dbd2d20512 (patch)
tree235057686e3142a55712817dd934812ef1375aec /include
parent05c07bee542bd3b0ec55103ffdc08a2d2709830b (diff)
downloadFreeBSD-src-5a45f730a5625608124e818a7be2c3dbd2d20512.zip
FreeBSD-src-5a45f730a5625608124e818a7be2c3dbd2d20512.tar.gz
Use the signal fence builtin in stdatomic.h when using the clang atomic
builtins, rather than the __asm hack. Somehow I missed the existence of this builtin originally and only noticed that it was there when I went to implement it... Note: Trunk clang now has support for (most of) the C[++]11 atomics stuff. Please test! Approved by: brooks (mentor)
Diffstat (limited to 'include')
-rw-r--r--include/stdatomic.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/include/stdatomic.h b/include/stdatomic.h
index b58a73b..8a40ae2 100644
--- a/include/stdatomic.h
+++ b/include/stdatomic.h
@@ -104,10 +104,7 @@ enum memory_order {
* 7.17.4 Fences.
*/
-#if defined(__CLANG_ATOMICS)
-#define atomic_thread_fence(order) __atomic_thread_fence(order)
-#define atomic_signal_fence(order) __asm volatile ("" : : : "memory")
-#elif defined(__GNUC_ATOMICS)
+#if defined(__CLANG_ATOMICS) || defined(__GNUC_ATOMICS)
#define atomic_thread_fence(order) __atomic_thread_fence(order)
#define atomic_signal_fence(order) __atomic_signal_fence(order)
#else
OpenPOWER on IntegriCloud