From a8db9b90439f33af9ef602325df1f1e967fc549a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 10 Mar 2022 21:13:20 +0000 Subject: [PATCH] libstdc++: Do not use fast_float for 16-bit size_t [PR104870] The preprocessor condition for using fast_float should match the one in the header, and require at least 32-bit size_t. libstdc++-v3/ChangeLog: PR libstdc++/104870 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32 before using fast_float. --- libstdc++-v3/src/c++17/floating_from_chars.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/src/c++17/floating_from_chars.cc b/libstdc++-v3/src/c++17/floating_from_chars.cc index ba1345d..ba0426b 100644 --- a/libstdc++-v3/src/c++17/floating_from_chars.cc +++ b/libstdc++-v3/src/c++17/floating_from_chars.cc @@ -61,7 +61,8 @@ extern "C" __ieee128 __strtoieee128(const char*, char**); #endif -#if _GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 +#if _GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 \ + && __SIZE_WIDTH__ >= 32 # define USE_LIB_FAST_FLOAT 1 # if __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ # undef USE_STRTOD_FOR_FROM_CHARS -- 2.7.4