diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2023-01-05 14:04:32 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2023-01-06 13:24:57 +0000 |
commit | 8c330fd49464f3d47a7c171d767eb3a011add76b (patch) | |
tree | 691341be2b4b0af0f129e9ee5902576f1bebad00 | |
parent | a40c22c377c7cc657b0feaf0119d84d0d142a318 (diff) | |
download | gcc-8c330fd49464f3d47a7c171d767eb3a011add76b.zip gcc-8c330fd49464f3d47a7c171d767eb3a011add76b.tar.gz gcc-8c330fd49464f3d47a7c171d767eb3a011add76b.tar.bz2 |
libstdc++: Disable broken std::format for floating-point types [PR108221]
If we don't have std::to_chars for floating-point types (either because
float and double are not IEEE format, or size_t is 16-bit) then we can't
use them with std::format. This causes a bootstrap failure since
std/c++20/tzdb.cc was added to the library, because <chrono> now
includes <format>.
This change just disables formatting support for those types. This is
not a proper fix, but solves the bootstrap failure for now.
libstdc++-v3/ChangeLog:
PR libstdc++/108221
* include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
Disable visiting floating-point types.
-rw-r--r-- | libstdc++-v3/include/std/format | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format index 98421e8..77f7c9f 100644 --- a/libstdc++-v3/include/std/format +++ b/libstdc++-v3/include/std/format @@ -3034,6 +3034,7 @@ namespace __format return std::forward<_Visitor>(__vis)(_M_val._M_ll); case _Arg_ull: return std::forward<_Visitor>(__vis)(_M_val._M_ull); +#if __cpp_lib_to_chars // FIXME: need to be able to format these types! case _Arg_flt: return std::forward<_Visitor>(__vis)(_M_val._M_flt); case _Arg_dbl: @@ -3047,6 +3048,7 @@ namespace __format case _Arg_ibm128: return std::forward<_Visitor>(__vis)(_M_val._M_ibm128); #endif +#endif case _Arg_str: return std::forward<_Visitor>(__vis)(_M_val._M_str); case _Arg_sv: |