https://gcc.gnu.org/g:5b178179e85ace01a97def40531e915c180aaeca

commit r14-10016-g5b178179e85ace01a97def40531e915c180aaeca
Author: Alexandre Oliva <ol...@adacore.com>
Date:   Thu Apr 18 08:00:56 2024 -0300

    [libstdc++] [testsuite] xfail double-prec from_chars for float128_t
    
    Tests 20_util/from_chars/4.cc and 20_util/to_chars/long_double.cc were
    adjusted about a year ago to skip long double on some targets, because
    the fastfloat library was limited to 64-bit doubles.
    
    The same problem comes up in similar float128_t tests on
    aarch64-vxworks.  This patch adjusts them similarly.
    
    Unlike the earlier tests, that got similar treatment for
    x86_64-vxworks, these haven't failed there.
    
    
    for  libstdc++-v3/ChangeLog
    
            * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
            on aarch64-vxworks.
            * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
            aarch64-vxworks.

Diff:
---
 libstdc++-v3/testsuite/20_util/from_chars/8.cc            | 3 ++-
 libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/libstdc++-v3/testsuite/20_util/from_chars/8.cc 
b/libstdc++-v3/testsuite/20_util/from_chars/8.cc
index ee60d88c332..a6343422c5a 100644
--- a/libstdc++-v3/testsuite/20_util/from_chars/8.cc
+++ b/libstdc++-v3/testsuite/20_util/from_chars/8.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++23 } }
 // { dg-add-options ieee }
+// { dg-additional-options "-DSKIP_LONG_DOUBLE" { target aarch64-*-vxworks* } }
 
 #include <charconv>
 #include <string>
@@ -343,7 +344,7 @@ test06()
 #if defined(__STDCPP_FLOAT64_T__) && defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
   test_max_mantissa<std::float64_t, unsigned long long>();
 #endif
-#if defined(__GLIBCXX_TYPE_INT_N_0) \
+#if defined(__GLIBCXX_TYPE_INT_N_0) && !defined SKIP_LONG_DOUBLE \
     && defined(__STDCPP_FLOAT128_T__) && 
defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128)
   test_max_mantissa<std::float128_t, unsigned __GLIBCXX_TYPE_INT_N_0>();
 #endif
diff --git a/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc 
b/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
index 547632817b4..ca00761ee7c 100644
--- a/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
+++ b/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
@@ -19,6 +19,7 @@
 // { dg-require-effective-target ieee_floats }
 // { dg-require-effective-target size32plus }
 // { dg-add-options ieee }
+// { dg-xfail-run-if "from_chars limited to double-precision" { 
aarch64-*-vxworks* } }
 
 #include <charconv>
 #include <stdfloat>

Reply via email to