diff -u -r gcc-11.3.0.alt/libstdc++-v3/src/c++17/floating_from_chars.cc gcc-11.3.0/libstdc++-v3/src/c++17/floating_from_chars.cc --- gcc-11.3.0.alt/libstdc++-v3/src/c++17/floating_from_chars.cc 2023-04-13 11:36:08.169841428 +0200 +++ gcc-11.3.0/libstdc++-v3/src/c++17/floating_from_chars.cc 2023-04-13 11:36:54.825827304 +0200 @@ -495,8 +495,14 @@ from_chars(const char* first, const char* last, __ieee128& value, chars_format fmt) noexcept { +#if _GLIBCXX_USE_CXX11_ABI buffer_resource mr; pmr::string buf(&mr); +#else + string buf; + if (!reserve_string(buf)) + return make_result(first, 0, {}, ec); +#endif size_t len = 0; errc ec = errc::invalid_argument; __try