#include #include #include #include extern long double __cdecl __mingw_wcstold (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr); double __cdecl __mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr); double __cdecl __mingw_wcstod (const wchar_t * __restrict__ _Str, wchar_t ** __restrict__ _EndPtr) { long double ret = __mingw_wcstold (_Str, _EndPtr); if (isfinite(ret)) { /* Check for cases that aren't out of range for long doubles, but that are * for doubles. */ if (ret > DBL_MAX) errno = ERANGE; else if (ret < -DBL_MAX) errno = ERANGE; else if (ret > 0 && ret < DBL_MIN) errno = ERANGE; else if (ret < 0 && ret > -DBL_MIN) errno = ERANGE; } return ret; }