Add C++ build tests
[urcu.git] / include / urcu / compiler.h
index 511dbdf302456d46329bce98e1147b7c34a51543..157346763078a3ec1d73b7c65618ed1bd98b325f 100644 (file)
 #define CAA_ARRAY_SIZE(x)      (sizeof(x) / sizeof((x)[0]))
 
 /*
- * Don't allow compiling with buggy compiler.
+ * URCU_GCC_VERSION is used to blacklist specific GCC versions with known
+ * bugs, clang also defines these macros to an equivalent GCC version it
+ * claims to support, so exclude it.
  */
-
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(__clang__)
 # define URCU_GCC_VERSION      (__GNUC__ * 10000 \
                                + __GNUC_MINOR__ * 100 \
                                + __GNUC_PATCHLEVEL__)
+#endif
 
-/*
- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
- */
-# ifdef __ARMEL__
-#  if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802
-#   error Your gcc version produces clobbered frame accesses
-#  endif
-# endif
+#ifndef __cplusplus
+#define caa_c_transparent_union        __attribute__((__transparent_union__))
+#else
+#define caa_c_transparent_union
 #endif
 
 #endif /* _URCU_COMPILER_H */
This page took 0.022986 seconds and 4 git commands to generate.