From 0958e19ffb047781fe1506760c7cbd8d7fe74e57 Mon Sep 17 00:00:00 2001 From: 卜部昌平 Date: Mon, 2 Dec 2019 14:58:43 +0900 Subject: add several __has_something macro With these macros implemented we can write codes just like we can assume the compiler being clang. MSC_VERSION_SINCE is defined to implement those macros, but turned out to be handy for other places. The -fdeclspec compiler flag is necessary for clang to properly handle __has_declspec(). --- random.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'random.c') diff --git a/random.c b/random.c index 68b47bcf1b..d763a214cd 100644 --- a/random.c +++ b/random.c @@ -137,7 +137,7 @@ int_pair_to_real_inclusive(uint32_t a, uint32_t b) const uint128_t m = ((uint128_t)1 << dig) | 1; uint128_t x = ((uint128_t)a << 32) | b; r = (double)(uint64_t)((x * m) >> 64); -#elif defined HAVE_UINT64_T && !(defined _MSC_VER && _MSC_VER <= 1200) +#elif defined HAVE_UINT64_T && !MSC_VERSION_BEFORE(1300) uint64_t x = ((uint64_t)a << dig_u) + (((uint64_t)b + (a >> dig_u)) >> dig_r64); r = (double)x; -- cgit v1.2.3