From 46d43dc58691ee124f20a8d2300c8ea84c907632 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Tue, 5 Dec 2017 10:41:39 +0300 Subject: [PATCH] Do not define AO_GCC_FORCE_HAVE_CAS for Clang 3.8+ (Aarch64) (fix commit 83fca68) Clang now defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_n macros (so, the workaround is not needed anymore). * src/atomic_ops/sysdeps/gcc/aarch64.h (AO_GCC_FORCE_HAVE_CAS, AO_GCC_HAVE_double_SYNC_CAS): Do not define if AO_CLANG_PREREQ(3, 8) (unless __APPLE_CC__). --- src/atomic_ops/sysdeps/gcc/aarch64.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/atomic_ops/sysdeps/gcc/aarch64.h b/src/atomic_ops/sysdeps/gcc/aarch64.h index 97d6ea6..430f490 100644 --- a/src/atomic_ops/sysdeps/gcc/aarch64.h +++ b/src/atomic_ops/sysdeps/gcc/aarch64.h @@ -204,8 +204,8 @@ #endif /* !AO_PREFER_BUILTIN_ATOMICS */ -#if defined(__clang__) - /* As of clang-3.6/arm64, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_n are missing. */ +#if (defined(__clang__) && !AO_CLANG_PREREQ(3, 8)) || defined(__APPLE_CC__) + /* __GCC_HAVE_SYNC_COMPARE_AND_SWAP_n macros are missing. */ # define AO_GCC_FORCE_HAVE_CAS # define AO_GCC_HAVE_double_SYNC_CAS #endif -- 2.50.0