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