gatomic: disable GCC extension atomics for clang
authorRyan Lortie <desrt@desrt.ca>
Fri, 20 Jun 2014 18:38:45 +0000 (14:38 -0400)
committerRyan Lortie <desrt@desrt.ca>
Fri, 20 Jun 2014 20:00:48 +0000 (16:00 -0400)
clang defines the macro that we use to test for GCC's extension support
for C11 atomics, but doesn't define the extension in the same way.
Check for clang and disable the macros again if we find it.

https://bugzilla.gnome.org/show_bug.cgi?id=731513

glib/gatomic.h

index 1c0096a..9d04b1d 100644 (file)
@@ -85,7 +85,7 @@ G_END_DECLS
 #if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
 
 /* We prefer the new C11-style atomic extension of GCC if available */
-#if defined(__ATOMIC_SEQ_CST)
+#if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
 
 #define g_atomic_int_get(atomic) \
   (G_GNUC_EXTENSION ({                                                       \