The code path in __floating_to_chars_precision for handling long double
by going through printf now also handles __float128, so the condition
that guards this code path needs to be updated accordingly.

Tested on x86_64-pc-linux-gnu (i.e. it compiles :)), does this look OK
for trunk?

libstdc++-v3/ChangeLog:

        * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
        Relax the condition that guards the printf code path to accept
        F128_type as well.
---
 libstdc++-v3/src/c++17/floating_to_chars.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libstdc++-v3/src/c++17/floating_to_chars.cc 
b/libstdc++-v3/src/c++17/floating_to_chars.cc
index aea96e08df1..f1512017aa3 100644
--- a/libstdc++-v3/src/c++17/floating_to_chars.cc
+++ b/libstdc++-v3/src/c++17/floating_to_chars.cc
@@ -1151,7 +1151,7 @@ template<typename T>
 
     // Ryu doesn't support formatting floating-point types larger than double
     // with an explicit precision, so instead we just go through printf.
-    if constexpr (is_same_v<T, long double>)
+    if constexpr (is_same_v<T, long double> || is_same_v<T, F128_type>)
       {
        int effective_precision;
        const char* output_specifier;
-- 
2.30.1.602.g966e671106

Reply via email to