bug-gnulib
[Top][All Lists]
Advanced

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

Re: math: Fix INFINITY and NAN on FreeBSD and AIX


From: Bruno Haible
Subject: Re: math: Fix INFINITY and NAN on FreeBSD and AIX
Date: Thu, 08 Aug 2024 03:24:08 +0200

And on mingw 5.0, I see this test failure:


FAIL: test-math
===============

../../gltests/test-math.c:103: assertion 'sizeof (INFINITY) == sizeof (float)' 
failed
FAIL test-math.exe (exit status: 3)

And once this is fixed, likewise for NAN.


This patch fixes it.


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

        math: Fix INFINITY and NAN on mingw.
        * doc/posix-headers/math.texi: Mention this mingw bug.
        * lib/math.in.h (INFINITY, NAN): Replace also on mingw.

diff --git a/doc/posix-headers/math.texi b/doc/posix-headers/math.texi
index 6f07b1e58c..fb72b94a08 100644
--- a/doc/posix-headers/math.texi
+++ b/doc/posix-headers/math.texi
@@ -55,7 +55,7 @@
 @item
 @code{INFINITY} and @code{NAN} are of type @code{double} instead of 
@code{float}
 on some platforms:
-FreeBSD 7.1.
+FreeBSD 7.1, mingw 5.0.
 
 @item
 The macros @code{NAN}, @code{HUGE_VALL}, and @code{INFINITY} are not
diff --git a/lib/math.in.h b/lib/math.in.h
index 7b1302d883..2fcba31c76 100644
--- a/lib/math.in.h
+++ b/lib/math.in.h
@@ -161,7 +161,7 @@ static void (*_gl_math_fix_itold) (long double *, int) = 
_Qp_itoq;
 
 
 /* Ensure that INFINITY is a constant expression, of type 'float'.  */
-#if !defined INFINITY || (defined __FreeBSD__ && __FreeBSD__ < 8) || defined 
_AIX
+#if !defined INFINITY || (defined __FreeBSD__ && __FreeBSD__ < 8) || defined 
_AIX || defined __MINGW32__
 # undef INFINITY
 # if defined __GNUC__ || defined __clang__
 #  define INFINITY (__builtin_inff ())
@@ -176,7 +176,7 @@ static void (*_gl_math_fix_itold) (long double *, int) = 
_Qp_itoq;
    it on platforms like Solaris 10, where NAN is present but defined
    as a function pointer rather than a floating point constant.
    Also ensure that it is a constant expression, of type 'float'.  */
-#if !defined NAN || @REPLACE_NAN@ || (defined __FreeBSD__ && __FreeBSD__ < 8) 
|| defined _AIX
+#if !defined NAN || @REPLACE_NAN@ || (defined __FreeBSD__ && __FreeBSD__ < 8) 
|| defined _AIX || defined __MINGW32__
 # if !GNULIB_defined_NAN
 #  undef NAN
   /* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler






reply via email to

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