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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Jonathan Wakely
<r...@gcc.gnu.org>:

https://gcc.gnu.org/g:cd2f934bb09c04e62beb8eb5421467184598983b

commit r13-7593-gcd2f934bb09c04e62beb8eb5421467184598983b
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu May 25 10:32:33 2023 +0100

    libstdc++: Fix preprocessor conditions for std::from_chars [PR109921]

    We use the from_chars_strtod function with __strtof128 to read a
    _Float128 value, but from_chars_strtod is not defined unless uselocale
    is available. This can lead to compilation failures for some targets,
    because we try to define the _Float128 overload in terms of a
    non-existing from_chars_strtod function.

    Only try to use __strtof128 if uselocale is available and therefore we
    can use the from_chars_strtod function template.

    This is a simpler change than r14-1431-g7037e7b6e4ac41 on trunk, because
    that caused unwanted ABI regressions (PR libstdc++/110077).

    libstdc++-v3/ChangeLog:

            PR libstdc++/109921
            * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
            Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
            (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
            binary64.
            (from_chars(const char*, const char*, double&, chars_format)):
            Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.

Reply via email to