guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 246/437: Use the logic to workaround float NaN and Inf H


From: Andy Wingo
Subject: [Guile-commits] 246/437: Use the logic to workaround float NaN and Inf Hercules bug conditional
Date: Mon, 2 Jul 2018 05:14:30 -0400 (EDT)

wingo pushed a commit to branch lightning
in repository guile.

commit 15a3ec25677d8923b7eaea0b0caeef1ea6c8141e
Author: pcpa <address@hidden>
Date:   Tue Sep 10 21:29:15 2013 -0300

    Use the logic to workaround float NaN and Inf Hercules bug conditional
    
        * check/lightning.c, configure.ac: Conditionally use the
        code written to workaround a bug in the Hercules emulator,
        as isnan and isinf are not available at least on HP-UX ia64.
     enter the commit message for your changes. Lines starting
---
 ChangeLog         | 6 ++++++
 check/lightning.c | 4 ++++
 configure.ac      | 2 +-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 0f70ff3..3743658 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2013-09-10 Paulo Andrade <address@hidden>
 
+       * check/lightning.c, configure.ac: Conditionally use the
+       code written to workaround a bug in the Hercules emulator,
+       as isnan and isinf are not available at least on HP-UX ia64.
+
+2013-09-10 Paulo Andrade <address@hidden>
+
        * lib/jit_s390x-cpu.c: Spill/reload correct callee save
        float registers.
 
diff --git a/check/lightning.c b/check/lightning.c
index 7ddd17a..2cf38ed 100644
--- a/check/lightning.c
+++ b/check/lightning.c
@@ -1880,11 +1880,15 @@ get_float(skip_t skip)
 static float
 make_float(double d)
 {
+    /* This is an workaround to a bug in Hercules s390x emulator,
+     * and at least HP-UX ia64 not have these */
+#if defined(HAVE_ISNAN) && defined(HAVE_ISINF)
     if (isnan(d))      return ( 0.0f/0.0f);
     if (isinf(d)) {
        if (d > 0.0)    return ( 1.0f/0.0f);
        else            return (-1.0f/0.0f);
     }
+#endif
     return ((float)d);
 }
 
diff --git a/configure.ac b/configure.ac
index 4f645df..3741452 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,7 +43,7 @@ AC_PROG_CC
 AC_PROG_INSTALL
 AC_PROG_LIBTOOL
 
-AC_CHECK_FUNCS(mremap ffsl getopt_long_only,,)
+AC_CHECK_FUNCS(mremap ffsl getopt_long_only isnan isinf,,)
 
 AC_CHECK_HEADERS([getopt.h],,,)
 



reply via email to

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