From 591424e5e09ebd6d2b6b28b44a2e20e42a16acdb Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 27 Aug 2024 00:49:07 +0200 Subject: [PATCH] Fix a test failure from a clang that masquerades as gcc 13. * tests/test-fenv-except-trapping-2.c (main): Skip the '4' test on clang, since clang 17 still generates buggy comparisons, like gcc versions < 8. --- ChangeLog | 7 +++++++ tests/test-fenv-except-trapping-2.c | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c46aeb9bfa..8f797b0053 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2024-08-26 Bruno Haible + + Fix a test failure from a clang that masquerades as gcc 13. + * tests/test-fenv-except-trapping-2.c (main): Skip the '4' test on + clang, since clang 17 still generates buggy comparisons, like gcc + versions < 8. + 2024-08-26 Bruno Haible Fix some of the warnings from a clang that masquerades as gcc 13. diff --git a/tests/test-fenv-except-trapping-2.c b/tests/test-fenv-except-trapping-2.c index 166454080e..e3c7299a67 100644 --- a/tests/test-fenv-except-trapping-2.c +++ b/tests/test-fenv-except-trapping-2.c @@ -450,11 +450,11 @@ main (int argc, char *argv[]) only when a source operand is an SNaN. The COMISD instruction signals an invalid numeric exception only if a source operand is either an SNaN or a QNaN." - - gcc < 8 (except when option -mno-ieee-fp is used) generates 'ucom*' - or 'fucom*' instructions and thus fails the test. + - gcc < 8 (except when option -mno-ieee-fp is used) and clang generate + 'ucom*' or 'fucom*' instructions and thus fail the test. - gcc >= 8 generates 'com*' or 'fcom*' instructions and thus passes the test. */ - #if (__GLIBC__ >= 2 && ((defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86)) && __GNUC__ < 8) \ + #if (__GLIBC__ >= 2 && ((defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86)) && (__GNUC__ < 8 || defined __clang__)) \ || (__GLIBC__ >= 2 && (defined __powerpc__ || (defined __s390__ || defined __s390x__))) \ || (__GLIBC__ >= 2 && __FreeBSD_kernel__ && ((defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86))) \ || (defined MUSL_LIBC && ((defined __i386 || defined _M_IX86) || defined __powerpc__)) \ -- 2.39.5