From: Ivan Maidanski Date: Tue, 5 Dec 2017 07:41:39 +0000 (+0300) Subject: Do not define AO_GCC_FORCE_HAVE_CAS for Clang 3.8+ (Aarch64) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=46d43dc;p=libatomic_ops 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__). --- 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