On Tue, 3 May 2022, 06:39 Alexandre Oliva via Libstdc++, <
libstd...@gcc.gnu.org> wrote:

>
> The floating-point overloads of from_char are only declared if
> _GLIBCXX_HAVE_USELOCALE is #defined as nonzero.  That's exposed from
> charconv as _cpp_lib_to_chars >= 201611L, so guard the test body with
> that.
>
> Regstrapped on ppc64le-linux-gnu, and tested on
> x86_64-linux-gnu-x-ppc{,64}-vx7r2 (without _GLIBCXX_HAVE_USELOCALE).
> Ok to install?  gcc-12?  gcc-11?
>
>
> for  libstdc++-v3/ChangeLog
>
>         PR c++/105324
>         * testsuite/20_util/from_chars/pr105324.cc: Guard test body
>         with conditional for floating-point overloads of from_char.
> ---
>  .../testsuite/20_util/from_chars/pr105324.cc       |    2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
> b/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
> index cecb17e41cc68..a9e08303ef49d 100644
> --- a/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
> +++ b/libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc
> @@ -5,10 +5,12 @@
>
>  int main()
>  {
> +#if _cpp_lib_to_chars >= 201611L // FP from_char not available otherwise.
>

That macro should start with two underscores.

OK for trunk and gcc-11 with that change.

gcc-12 branch needs RM approval. OK for 12.2 if not approved for 12.1

   // PR libstdc++/105324
>    // std::from_chars() assertion at floating_from_chars.cc:78
>    std::string s(512, '1');
>    s[1] = '.';
>    long double d;
>    std::from_chars(s.data(), s.data() + s.size(), d);
> +#endif
>  }
>

Reply via email to