From bfa33b3ed16dc831d215983e87551120197abf67 Mon Sep 17 00:00:00 2001 From: Joao Paulo Magalhaes Date: Fri, 20 Nov 2020 00:26:33 +0000 Subject: [PATCH] fix mingw compile errors --- include/fast_float/float_common.h | 5 ++++- tests/basictest.cpp | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/fast_float/float_common.h b/include/fast_float/float_common.h index df16ec3..d604dec 100644 --- a/include/fast_float/float_common.h +++ b/include/fast_float/float_common.h @@ -131,7 +131,7 @@ fastfloat_really_inline int leading_zeroes(uint64_t input_num) { #ifdef FASTFLOAT_32BIT -#if !defined(_WIN32) +#if (!defined(_WIN32)) || defined(__MINGW32__) // slow emulation routine for 32-bit fastfloat_really_inline uint64_t __emulu(uint32_t x, uint32_t y) { return x * (uint64_t)y; @@ -139,6 +139,7 @@ fastfloat_really_inline uint64_t __emulu(uint32_t x, uint32_t y) { #endif // slow emulation routine for 32-bit +#if !defined(__MINGW64__) fastfloat_really_inline uint64_t _umul128(uint64_t ab, uint64_t cd, uint64_t *hi) { uint64_t ad = __emulu((uint32_t)(ab >> 32), (uint32_t)cd); @@ -150,6 +151,8 @@ fastfloat_really_inline uint64_t _umul128(uint64_t ab, uint64_t cd, (adbc_carry << 32) + !!(lo < bd); return lo; } +#endif // !__MINGW64__ + #endif // FASTFLOAT_32BIT diff --git a/tests/basictest.cpp b/tests/basictest.cpp index a2f3110..d0a7d48 100644 --- a/tests/basictest.cpp +++ b/tests/basictest.cpp @@ -1,9 +1,10 @@ -#include "fast_float/fast_float.h" -#include #define DOCTEST_CONFIG_SUPER_FAST_ASSERTS #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include +#include "fast_float/fast_float.h" +#include + TEST_CASE("leading_zeroes") { constexpr const uint64_t bit = 1;