diff options
author | Bruno Haible <bruno@clisp.org> | 2012-04-01 19:29:21 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2012-04-01 19:29:21 +0200 |
commit | 45ab0165ccb83927281978a447898b554929fc51 (patch) | |
tree | c231272968ff7c307b5ac2792083880bb07a2742 /lib | |
parent | d4b6128e5b83f528e79259585977a126ce29c7a8 (diff) | |
download | gnulib-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.c | 12 |
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 |