]> granicus.if.org Git - libatomic_ops/commitdiff
Do not define AO_GCC_FORCE_HAVE_CAS for Clang 3.8+ (Aarch64)
authorIvan Maidanski <ivmai@mail.ru>
Tue, 5 Dec 2017 07:41:39 +0000 (10:41 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 5 Dec 2017 07:50:04 +0000 (10:50 +0300)
(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

index 97d6ea6bc6d4891d9ff867d2f84dfecea762f552..430f4900fa31eb8ec648c9c4359435f48b67a271 100644 (file)
 
 #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