https://gcc.gnu.org/g:09ef9756f22a8c4143c6b8d3afcddc72fb700c76

commit r15-5348-g09ef9756f22a8c4143c6b8d3afcddc72fb700c76
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Sat Nov 16 17:04:38 2024 +0100

    libgcc: Fix a warning/error in libgcc2.c [PR117624]
    
    Since the switch to -std=gnu23 by default, float.h (included from
    tsystem.h) defines INFINITY macro (to __builtin_inff ()), which now
    results in a warning when compiling libgcc2.c which defines it
    to something else (and, worse aarch64 compiles it with -Werror and
    build fails).
    libgcc2.c asserts INFINITY has the expected type which depends on
    the macros with which libgcc2.c is being compiled, so guarding
    the define with #ifndef INFINITY wouldn't work.
    So this patch instead #undefs the macro before defining it.
    
    2024-11-16  Jakub Jelinek  <ja...@redhat.com>
    
            PR libgcc/117624
            * libgcc2.c (INFINITY): Add #undef before #define.

Diff:
---
 libgcc/libgcc2.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c
index 3fcb85c5b92e..27959a6e0f25 100644
--- a/libgcc/libgcc2.c
+++ b/libgcc/libgcc2.c
@@ -2673,6 +2673,7 @@ NAME (TYPE x, int m)
 #define isfinite(x)    __builtin_isfinite (x)
 #define isinf(x)       __builtin_isinf (x)
 
+#undef INFINITY
 #define INFINITY       CONCAT2(__builtin_huge_val, CEXT) ()
 #define I              1i

Reply via email to