summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2019-12-12 12:38:40 +0100
committerBruno Haible <bruno@clisp.org>2019-12-12 12:38:40 +0100
commite5bad6d5201e3e1ad4eb5af82825447591b0fae4 (patch)
tree60494fff554a0ff76da3363e49869d888d244d4e
parentfac670ce47d49a37df8929110b9adc70a1763643 (diff)
downloadgnulib-e5bad6d5201e3e1ad4eb5af82825447591b0fae4.tar.gz
gnulib-e5bad6d5201e3e1ad4eb5af82825447591b0fae4.tar.bz2
ilogbl: Work around Cygwin bug.
* m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Test whether ilogbl(0.0L) is correct. * doc/posix-functions/ilogbl.texi: Mention the Cygwin bug.
-rw-r--r--ChangeLog7
-rw-r--r--doc/posix-functions/ilogbl.texi4
-rw-r--r--m4/ilogbl.m411
3 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3cd4b9f9c0..d62eb6145f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2019-12-12 Bruno Haible <bruno@clisp.org>
+ ilogbl: Work around Cygwin bug.
+ * m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Test whether ilogbl(0.0L) is
+ correct.
+ * doc/posix-functions/ilogbl.texi: Mention the Cygwin bug.
+
+2019-12-12 Bruno Haible <bruno@clisp.org>
+
strtold: Work around Cygwin bug.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Add test for the underflow problem.
If it is present, define STRTOLD_HAS_UNDERFLOW_BUG.
diff --git a/doc/posix-functions/ilogbl.texi b/doc/posix-functions/ilogbl.texi
index 416189009f..ed87110cd5 100644
--- a/doc/posix-functions/ilogbl.texi
+++ b/doc/posix-functions/ilogbl.texi
@@ -12,6 +12,10 @@ Portability problems fixed by Gnulib:
This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, MSVC 9.
@item
+This function returns a wrong result for a zero argument on some platforms:
+@c https://cygwin.com/ml/cygwin/2019-12/msg00074.html
+Cygwin 2.9.
+@item
This function returns a wrong result for denormalized arguments on some platforms:
Haiku 2017.
@end itemize
diff --git a/m4/ilogbl.m4 b/m4/ilogbl.m4
index c8ba52a23e..ab274331ca 100644
--- a/m4/ilogbl.m4
+++ b/m4/ilogbl.m4
@@ -1,4 +1,4 @@
-# ilogbl.m4 serial 3
+# ilogbl.m4 serial 4
dnl Copyright (C) 2010-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -71,6 +71,7 @@ AC_DEFUN([gl_FUNC_ILOGBL],
])
dnl Test whether ilogbl() works.
+dnl On Cygwin 2.9, ilogb(0.0L) is wrong.
dnl On Haiku 2017, it returns i-2 instead of i-1 for values between
dnl ca. 2^-16444 and ca. 2^-16382.
AC_DEFUN([gl_FUNC_ILOGBL_WORKS],
@@ -108,13 +109,19 @@ int main (int argc, char *argv[])
{
int (* volatile my_ilogbl) (long double) = argc ? ilogbl : dummy;
int result = 0;
+ /* This test fails on Cygwin 2.9. */
+ {
+ x = 0.0L;
+ if (my_ilogbl (x) != FP_ILOGB0)
+ result |= 1;
+ }
/* This test fails on Haiku 2017. */
{
int i;
for (i = 1, x = (long double)1.0; i >= LDBL_MIN_EXP-100 && x > (long double)0.0; i--, x *= (long double)0.5)
if (my_ilogbl (x) != i - 1)
{
- result |= 1;
+ result |= 2;
break;
}
}

Return to:

Send suggestions and report system problems to the System administrator.