From f0e3c47fd6879b96d9ce712284e8a349092262dd Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 27 Apr 2009 05:31:37 +0000 Subject: * sysdeps/ieee754/dbl-64/s_expm1.c: Set errno for overflow. * sysdeps/ieee754/flt-32/s_expm1f.c: Likewise. * sysdeps/x86_64/fpu/s_expm1l.S: Likewise. --- sysdeps/ieee754/dbl-64/s_expm1.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sysdeps/ieee754/dbl-64') diff --git a/sysdeps/ieee754/dbl-64/s_expm1.c b/sysdeps/ieee754/dbl-64/s_expm1.c index bfd15b2e31..324354336e 100644 --- a/sysdeps/ieee754/dbl-64/s_expm1.c +++ b/sysdeps/ieee754/dbl-64/s_expm1.c @@ -112,6 +112,7 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $"; * to produce the hexadecimal values shown. */ +#include #include "math.h" #include "math_private.h" #define one Q[0] @@ -159,7 +160,10 @@ Q[] = {1.0, -3.33333333333331316428e-02, /* BFA11111 111110F4 */ return x+x; /* NaN */ else return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */ } - if(x > o_threshold) return huge*huge; /* overflow */ + if(x > o_threshold) { + __set_errno (ERANGE); + return huge*huge; /* overflow */ + } } if(xsb!=0) { /* x < -56*ln2, return -1.0 with inexact */ if(x+tiny<0.0) /* raise inexact */ -- cgit 1.4.1