From b821b97f06e02d299001478fc887a7eeb2f9c2c5 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 10 Mar 2017 21:34:28 +0100 Subject: [PATCH] Compiler.h: add macro CLANG_OR_GCC_VERSION() --- src/Compiler.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Compiler.h b/src/Compiler.h index 7d19d68..ef13a54 100644 --- a/src/Compiler.h +++ b/src/Compiler.h @@ -38,6 +38,13 @@ # define CLANG_VERSION 0 #endif +/** + * Are we building with clang (any version) or at least the specified + * gcc version? + */ +#define CLANG_OR_GCC_VERSION(major, minor) \ + (CLANG_VERSION || GCC_CHECK_VERSION(major, minor)) + /** * Are we building with gcc (not clang or any other compiler) and a * version older than the specified one? @@ -46,7 +53,7 @@ (GCC_VERSION && !CLANG_VERSION && \ GCC_VERSION < GCC_MAKE_VERSION(major, minor, 0)) -#if GCC_CHECK_VERSION(4,0) +#if CLANG_OR_GCC_VERSION(4,0) /* GCC 4.x */ @@ -106,7 +113,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)) @@ -127,7 +134,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 @@ -145,7 +152,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) -- 2.30.2