summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2012-04-01 19:29:21 +0200
committerBruno Haible <bruno@clisp.org>2012-04-01 19:29:21 +0200
commit45ab0165ccb83927281978a447898b554929fc51 (patch)
treec231272968ff7c307b5ac2792083880bb07a2742 /lib
parentd4b6128e5b83f528e79259585977a126ce29c7a8 (diff)
downloadgnulib-45ab0165ccb83927281978a447898b554929fc51.tar.gz
log10l: Work around log10l-ieee test failure on IRIX 6.5.
* lib/log10l.c: Include <float.h> (log10l): On IRIX, normalize the +Infinity value. * modules/log10l (Depends-on): Add 'float'. * doc/posix-functions/log10l.texi: Mention the IRIX problem with +Infinity.
Diffstat (limited to 'lib')
-rw-r--r--lib/log10l.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/log10l.c b/lib/log10l.c
index f108538905..eb83a1159a 100644
--- a/lib/log10l.c
+++ b/lib/log10l.c
@@ -29,6 +29,8 @@ log10l (long double x)
#elif HAVE_LOG10L
+# include <float.h>
+
long double
log10l (long double x)
# undef log10l
@@ -37,7 +39,15 @@ log10l (long double x)
if (x == 0.0L)
/* Return -Infinity. */
return -1.0L / 0.0L;
- return log10l (x);
+ {
+ long double y = log10l (x);
+# ifdef __sgi
+ /* Normalize the +Infinity value. */
+ if (y > LDBL_MAX)
+ y = 1.0L / 0.0L;
+# endif
+ return y;
+ }
}
#else