diff options
author | Bruno Haible <bruno@clisp.org> | 2019-12-12 12:38:40 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2019-12-12 12:38:40 +0100 |
commit | e5bad6d5201e3e1ad4eb5af82825447591b0fae4 (patch) | |
tree | 60494fff554a0ff76da3363e49869d888d244d4e | |
parent | fac670ce47d49a37df8929110b9adc70a1763643 (diff) | |
download | gnulib-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-- | ChangeLog | 7 | ||||
-rw-r--r-- | doc/posix-functions/ilogbl.texi | 4 | ||||
-rw-r--r-- | m4/ilogbl.m4 | 11 |
3 files changed, 20 insertions, 2 deletions
@@ -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; } } |