Compiler.h: add macro CLANG_OR_GCC_VERSION()
This commit is contained in:
@@ -31,6 +31,13 @@
|
||||
#define GCC_CHECK_VERSION(major, minor) \
|
||||
(defined(__GNUC__) && GCC_VERSION >= GCC_MAKE_VERSION(major, minor, 0))
|
||||
|
||||
/**
|
||||
* Are we building with clang (any version) or at least the specified
|
||||
* gcc version?
|
||||
*/
|
||||
#define CLANG_OR_GCC_VERSION(major, minor) \
|
||||
(defined(__clang__) || GCC_CHECK_VERSION(major, minor))
|
||||
|
||||
/**
|
||||
* Are we building with gcc (not clang or any other compiler) and a
|
||||
* version older than the specified one?
|
||||
@@ -52,7 +59,7 @@
|
||||
# warning Untested compiler. Use at your own risk!
|
||||
#endif
|
||||
|
||||
#if GCC_CHECK_VERSION(4,0)
|
||||
#if CLANG_OR_GCC_VERSION(4,0)
|
||||
|
||||
/* GCC 4.x */
|
||||
|
||||
@@ -112,7 +119,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
#if GCC_CHECK_VERSION(4,3)
|
||||
#if CLANG_OR_GCC_VERSION(4,3)
|
||||
|
||||
#define gcc_hot __attribute__((hot))
|
||||
#define gcc_cold __attribute__((cold))
|
||||
@@ -133,7 +140,7 @@
|
||||
#ifndef __cplusplus
|
||||
/* plain C99 has "restrict" */
|
||||
#define gcc_restrict restrict
|
||||
#elif GCC_CHECK_VERSION(4,0)
|
||||
#elif CLANG_OR_GCC_VERSION(4,0)
|
||||
/* "__restrict__" is a GCC extension for C++ */
|
||||
#define gcc_restrict __restrict__
|
||||
#else
|
||||
@@ -151,7 +158,7 @@
|
||||
#define final
|
||||
#endif
|
||||
|
||||
#if defined(__clang__) || GCC_CHECK_VERSION(4,8)
|
||||
#if CLANG_OR_GCC_VERSION(4,8)
|
||||
#define gcc_alignas(T, fallback) alignas(T)
|
||||
#else
|
||||
#define gcc_alignas(T, fallback) gcc_aligned(fallback)
|
||||
|
Reference in New Issue
Block a user