On Thu, 11 Jul 2024 at 14:21, Alexandre Oliva <ol...@adacore.com> wrote: > > > Having observed failures of these two tests on yet another aarch64 > operating system, and having concluded that the conditions that > trigger the problem ought to be present on all aarch64 targets, I'm > now matching any aarch64 target_os to enable the workaround.
That's concerning, aarch64-unknown-linux-gnu with glibc should work OK for float128_t, because aarch64 already has 128-bit long double, so there's no good reason that float128_t wouldn't work. What are the conditions that trigger the problem? I've only just noticed that the macro name makes no sense, as this is about float128_t, not long double. They're distinct types (although for aarch64 they have the same representation). So we should at the very least rename the macro to something like SKIP_FLOAT128, but I'd also like to understand why float128_t fails on a target where long double works OK and has the same binary128 representation. > > Regstrapped on x86_64-linux-gnu, also tested with gcc-13 targeting > aarch64. Ok to install? > > > for libstdc++-v3/ChangeLog > > * testsuite/20_util/from_chars/8.cc: Define SKIP_LONG_DOUBLE > on all aarch64-*-* targets. > * testsuite/20_util/to_chars/float128_c++23.cc: Xfail on all > aarch64-*-* targets. > --- > libstdc++-v3/testsuite/20_util/from_chars/8.cc | 2 +- > .../testsuite/20_util/to_chars/float128_c++23.cc | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libstdc++-v3/testsuite/20_util/from_chars/8.cc > b/libstdc++-v3/testsuite/20_util/from_chars/8.cc > index bacad89943b5f..e92b64349025e 100644 > --- a/libstdc++-v3/testsuite/20_util/from_chars/8.cc > +++ b/libstdc++-v3/testsuite/20_util/from_chars/8.cc > @@ -17,7 +17,7 @@ > > // { dg-do run { target c++23 } } > // { dg-add-options ieee } > -// { dg-additional-options "-DSKIP_LONG_DOUBLE" { target aarch64-*-vxworks* > aarch64-*-rtems* } } > +// { dg-additional-options "-DSKIP_LONG_DOUBLE" { target aarch64-*-* } } > > #include <charconv> > #include <string> > 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 6cb9cadcd2041..840131c1e5691 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,7 +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* aarch64-*-rtems* } } > +// { dg-xfail-run-if "from_chars limited to double-precision" { aarch64-*-* > } } > > #include <charconv> > #include <stdfloat> > > > -- > Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ > Free Software Activist GNU Toolchain Engineer > More tolerance and less prejudice are key for inclusion and diversity > Excluding neuro-others for not behaving ""normal"" is *not* inclusive >