From 07e1d7870ac4a1b5dbdeca69301aeea2efc5a5fd Mon Sep 17 00:00:00 2001 From: Charles Milette Date: Thu, 25 Jul 2019 16:55:34 -0400 Subject: [PATCH] Fix build error under non-Clang compilers --- include/rapidjson/internal/clzll.h | 2 +- include/rapidjson/rapidjson.h | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/rapidjson/internal/clzll.h b/include/rapidjson/internal/clzll.h index 7c2fa48..3449038 100644 --- a/include/rapidjson/internal/clzll.h +++ b/include/rapidjson/internal/clzll.h @@ -29,7 +29,7 @@ RAPIDJSON_NAMESPACE_BEGIN namespace internal { -#if defined(__has_builtin) && __has_builtin(__builtin_clzll) +#if (defined(__GNUC__) && __GNUC__ >= 4) || RAPIDJSON_HAS_BUILTIN(__builtin_clzll) #define RAPIDJSON_CLZLL __builtin_clzll #else diff --git a/include/rapidjson/rapidjson.h b/include/rapidjson/rapidjson.h index 549936f..62b079f 100644 --- a/include/rapidjson/rapidjson.h +++ b/include/rapidjson/rapidjson.h @@ -490,6 +490,12 @@ RAPIDJSON_NAMESPACE_END #define RAPIDJSON_VERSION_CODE(x,y,z) \ (((x)*100000) + ((y)*100) + (z)) +#if defined(__has_builtin) +#define RAPIDJSON_HAS_BUILTIN(x) __has_builtin(x) +#else +#define RAPIDJSON_HAS_BUILTIN(x) 0 +#endif + /////////////////////////////////////////////////////////////////////////////// // RAPIDJSON_DIAG_PUSH/POP, RAPIDJSON_DIAG_OFF