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.
gcc/testsuite/
PR target/118184
* gcc.dg/torture/pr118184.c: Use _Float128 instead of long double.
-/* { dg-do run { target { longdouble128 && lp64 } } } */
+/* { dg-do run { target { float128 && lp64 } } } */
union u1
{
- long double ld;
+ _Float128 ld;
unsigned long l[2];
};
}
[[gnu::noinline]]
-long double f(void)
+_Float128 f(void)
{
union u1 u;
u.ld = __builtin_nanf128("");