From 7199849cd294ca3d2b7d30f59c27fa03412e5812 Mon Sep 17 00:00:00 2001 From: Haru Date: Tue, 5 Apr 2016 15:20:39 +0200 Subject: Disabled some #pragma GCC diagnostic on versions that don't support them - Fixes compilation on gcc 4.4 for the brave ones who still want to use it (we recommend gcc 4.7 or newer) - Removes some warnings about unknown pragmas on MSVC Signed-off-by: Haru --- src/common/cbasetypes.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/common/cbasetypes.h') diff --git a/src/common/cbasetypes.h b/src/common/cbasetypes.h index 6843ce486..3675d8fa4 100644 --- a/src/common/cbasetypes.h +++ b/src/common/cbasetypes.h @@ -295,6 +295,21 @@ typedef uintptr_t uintptr; #define analyzer_noreturn #endif +// gcc version (if any) - borrowed from Mana Plus +#ifdef __GNUC__ +#define GCC_VERSION (__GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100 \ + + __GNUC_PATCHLEVEL__) +#else +#define GCC_VERSION 0 +#endif + +// Pragma macro only enabled on gcc >= 4.5 or clang - borrowed from Mana Plus +#if defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40500) +#define PRAGMA_GCC45(str) _Pragma(#str) +#else // ! defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40500) +#define PRAGMA_GCC45(str) +#endif // ! defined(__GNUC__) && (defined(__clang__) || GCC_VERSION >= 40500) // boolean types for C #if !defined(_MSC_VER) || _MSC_VER >= 1800 -- cgit v1.2.3-70-g09d2