When long double is 64-bit wide, as on vxworks, the rs6000 backend
defines neither the __ibm128 type nor the __SIZEOF_IBM128__ macro, but
pr99708.c expected both to be always defined. Adjust the test to
match the implementation.
Regstrapped on ppc64-linux-gnu. Also tested with ppc64-vxworks7r2
(gcc-12). Ok to install?
for gcc/testsuite/ChangeLog
* gcc.target/powerpc/pr99708.c: Accept lack of
__SIZEOF_IBM128__ when long double is 64-bit wide.
---
gcc/testsuite/gcc.target/powerpc/pr99708.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/gcc/testsuite/gcc.target/powerpc/pr99708.c
b/gcc/testsuite/gcc.target/powerpc/pr99708.c
index 02b40ebc40d3d..fca6296d9c81f 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr99708.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr99708.c
@@ -14,7 +14,13 @@
int main (void)
{
if (__SIZEOF_FLOAT128__ != sizeof (__float128)
- || __SIZEOF_IBM128__ != sizeof (__ibm128))
+#ifdef __SIZEOF_IBM128__ /* Not defined, and no __ibm128 type on targets whose
+ long double is 64-bit. */
+ || __SIZEOF_IBM128__ != sizeof (__ibm128)
+#else
+ || __SIZEOF_LONG_DOUBLE__ * __CHAR_BIT__ != 64
+#endif
+ )
abort ();
return 0;
--
Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/
Free Software Activist GNU Toolchain Engineer
Disinformation flourishes because many people care deeply about injustice
but very few check the facts. Ask me about <https://stallmansupport.org>