https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113578

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Maybe we could make it work for std::ostream with something like:

--- a/libstdc++-v3/include/std/ostream
+++ b/libstdc++-v3/include/std/ostream
@@ -233,7 +233,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       {
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 117. basic_ostream uses nonexistent num_put member functions.
+#ifdef __riscv
+       return _M_insert(__builtin_copysign((double)__f,
+                                           (double)-!!__builtin_signbit(__f));
+#else
        return _M_insert(static_cast<double>(__f));
+#endif
       }

       __ostream_type&

Reply via email to