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>