bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: OpenMandriva


From: Bruno Haible
Subject: Re: OpenMandriva
Date: Tue, 27 Aug 2024 00:49:20 +0200

> >     Fix compilation errors with clang that masquerades as gcc 13.
> 
> And here is a patch that fixes the clang warnings that appear to be caused
> by this version of __GNUC__.

And here is a patch that avoids a test failure. gcc >= 8 generates correct
floating point comparisons, gcc 4.2 and clang 17 don't. Another reason to
dislike it when clang lies.


2024-08-26  Bruno Haible  <bruno@clisp.org>

        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.

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__)) \






reply via email to

[Prev in Thread] Current Thread [Next in Thread]