The test was failing on x86 because longdouble128 only checks sizeof,
rather than a full 128-bit payload. Using _Float128 is more portable
and still exposes the original bug.
Tested on aarch64-linux-gnu and x86_64-linux-gnu, pushed as obvious.
Richard
gcc/testsuite/
PR target/118184
* gcc.dg/torture/pr118184.c: Use _Float128 instead of long double.
---
gcc/testsuite/gcc.dg/torture/pr118184.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/testsuite/gcc.dg/torture/pr118184.c
b/gcc/testsuite/gcc.dg/torture/pr118184.c
index 20f567af11f..5933e2a1222 100644
--- a/gcc/testsuite/gcc.dg/torture/pr118184.c
+++ b/gcc/testsuite/gcc.dg/torture/pr118184.c
@@ -1,8 +1,8 @@
-/* { dg-do run { target { longdouble128 && lp64 } } } */
+/* { dg-do run { target { float128 && lp64 } } } */
union u1
{
- long double ld;
+ _Float128 ld;
unsigned long l[2];
};
@@ -13,7 +13,7 @@ unsigned long m()
}
[[gnu::noinline]]
-long double f(void)
+_Float128 f(void)
{
union u1 u;
u.ld = __builtin_nanf128("");
--
2.25.1