From 3ba5a16e7af92dbeef54cdeb819f8dad0582fc08 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva <oliva@adacore.com> Date: Fri, 5 May 2023 08:34:23 -0300 Subject: [PATCH] [libstdc++] [testsuite] xfail double-prec from_chars for ldbl When long double is wider than double, but from_chars is implemented in terms of double, tests that involve the full precision of long double are expected to fail. Mark them as such on aarch64-*-vxworks. for libstdc++-v3/ChangeLog * testsuite/20_util/from_chars/4.cc: Skip long double test06 on aarch64-vxworks. * testsuite/20_util/to_chars/long_double.cc: Xfail run on aarch64-vxworks. (cherry picked from commit e383fc69d2a3eab37319ea41543ee09c8cdd6e57) --- libstdc++-v3/testsuite/20_util/from_chars/4.cc | 3 ++- libstdc++-v3/testsuite/20_util/to_chars/long_double.cc | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/testsuite/20_util/from_chars/4.cc b/libstdc++-v3/testsuite/20_util/from_chars/4.cc index dd55690eb651..c3594f9014bd 100644 --- a/libstdc++-v3/testsuite/20_util/from_chars/4.cc +++ b/libstdc++-v3/testsuite/20_util/from_chars/4.cc @@ -18,6 +18,7 @@ // <charconv> is supported in C++14 as a GNU extension // { dg-do run { target c++14 } } // { dg-add-options ieee } +// { dg-additional-options "-DSKIP_LONG_DOUBLE" { target aarch64-*-vxworks* } } #include <charconv> #include <string> @@ -354,7 +355,7 @@ test06() { test_max_mantissa<float, unsigned long>(); test_max_mantissa<double, unsigned long long>(); -#ifdef __GLIBCXX_TYPE_INT_N_0 +#if defined __GLIBCXX_TYPE_INT_N_0 && !defined SKIP_LONG_DOUBLE test_max_mantissa<long double, unsigned __GLIBCXX_TYPE_INT_N_0>(); #endif } diff --git a/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc b/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc index 880c98021876..263144bd42cb 100644 --- a/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc +++ b/libstdc++-v3/testsuite/20_util/to_chars/long_double.cc @@ -34,6 +34,10 @@ // more portable and robust to differences in system printf behavior. // { dg-xfail-run-if "Non-conforming printf (see PR98384)" { *-*-solaris* *-*-darwin* } } +// On systems that use double-precision from_chars for long double, +// this is expected to fail. +// { dg-xfail-run-if "from_chars limited to double-precision" { aarch64-*-vxworks* } } + // { dg-require-effective-target ieee_floats } // { dg-require-effective-target size32plus } // { dg-require-cmath "" } -- GitLab