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

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

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

commit r14-2504-ga1d12752f8d45df5d7962cef6e2a87585002e982
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu Jul 13 10:44:57 2023 +0100

    libstdc++: std::stoi etc. do not need C99 <stdlib.h> support [PR110653]

    std::stoi, std::stol, std::stoul, and std::stod only depend on C89
    functions, so don't need to be guarded by _GLIBCXX_USE_C99_STDLIB

    std::stoll and std::stoull don't need C99 strtoll and strtoull if
    sizeof(long) == sizeof(long long).

    std::stold doesn't need C99 strtold if DBL_MANT_DIG == LDBL_MANT_DIG.

    This only applies to the narrow character overloads, the wchar_t
    overloads depend on a separate _GLIBCXX_USE_C99_WCHAR macro and none of
    them can be implemented in C89 easily.

    libstdc++-v3/ChangeLog:

            PR libstdc++/110653
            * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
            depend on _GLIBCXX_USE_C99_STDLIB.
            [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
            in terms of stol and stoul respectively.
            [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
            of stod.

Reply via email to