65#if (defined(MINGW_ANY)||defined(__FreeBSD__)) && GCC_VERSION >= 409
76#define PROBLEMATIC_FLOAT_CONVERSION_WARNING
77DISABLE_GCC_WARNING(
"-Wfloat-conversion")
85#if __has_warning("-Wdouble-promotion")
86#define PROBLEMATIC_DOUBLE_PROMOTION_WARNING
87DISABLE_GCC_WARNING(
"-Wdouble-promotion")
104 frexp(number, &exponent);
110 if (isfinite(number) && exponent <= 63) {
111 return (int64_t)number;
115 return signbit(number) ? INT64_MIN : INT64_MAX;
117#ifdef PROBLEMATIC_DOUBLE_PROMOTION_WARNING
118ENABLE_GCC_WARNING(
"-Wdouble-promotion")
120#ifdef PROBLEMATIC_FLOAT_CONVERSION_WARNING
121ENABLE_GCC_WARNING(
"-Wfloat-conversion")