2009-05-29 Jakub Jelinek <jakub@redhat.com>
+ * sysdeps/ieee754/ldbl-128/s_expm1l.c: Include <errno.h>.
+ (__expm1l): Set errno to ERANGE on overflow.
+ * sysdeps/ieee754/ldbl-128/s_tanl.c: Include <errno.h>.
+ (__tanl): Set errno to EDOM for ±Inf.
+ * sysdeps/ieee754/ldbl-128/s_cosl.c: Include <errno.h>.
+ (__cosl): Set errno to EDOM for ±Inf.
+ * sysdeps/ieee754/ldbl-128/s_sinl.c: Include <errno.h>.
+ (__sinl): Set errno to EDOM for ±Inf.
+
+2009-05-29 Jakub Jelinek <jakub@redhat.com>
+
* sysdeps/s390/s390-32/__longjmp.c (__longjmp): If CHECK_SP is
defined, use it.
* sysdeps/s390/s390-64/__longjmp.c (__longjmp): Likewise.
* TRIG(x) returns trig(x) nearly rounded
*/
+#include <errno.h>
#include "math.h"
#include "math_private.h"
return __kernel_cosl(x,z);
/* cos(Inf or NaN) is NaN */
- else if (ix>=0x7fff000000000000LL) return x-x;
+ else if (ix>=0x7fff000000000000LL) {
+ if (ix == 0x7fff000000000000LL) {
+ GET_LDOUBLE_LSW64(n,x);
+ if (n == 0)
+ __set_errno (EDOM);
+ }
+ return x-x;
+ }
/* argument reduction needed */
else {
+#include <errno.h>
#include "math.h"
#include "math_private.h"
/* Overflow. */
if (x > maxlog)
- return (big * big);
+ {
+ __set_errno (ERANGE);
+ return (big * big);
+ }
/* Minimum value. */
if (x < minarg)
* TRIG(x) returns trig(x) nearly rounded
*/
+#include <errno.h>
#include "math.h"
#include "math_private.h"
return __kernel_sinl(x,z,0);
/* sin(Inf or NaN) is NaN */
- else if (ix>=0x7fff000000000000LL) return x-x;
+ else if (ix>=0x7fff000000000000LL) {
+ if (ix == 0x7fff000000000000LL) {
+ GET_LDOUBLE_LSW64(n,x);
+ if (n == 0)
+ __set_errno (EDOM);
+ }
+ return x-x;
+ }
/* argument reduction needed */
else {
* TRIG(x) returns trig(x) nearly rounded
*/
+#include <errno.h>
#include "math.h"
#include "math_private.h"
if(ix <= 0x3ffe921fb54442d1LL) return __kernel_tanl(x,z,1);
/* tanl(Inf or NaN) is NaN */
- else if (ix>=0x7fff000000000000LL) return x-x; /* NaN */
+ else if (ix>=0x7fff000000000000LL) {
+ if (ix == 0x7fff000000000000LL) {
+ GET_LDOUBLE_LSW64(n,x);
+ if (n == 0)
+ __set_errno (EDOM);
+ }
+ return x-x; /* NaN */
+ }
/* argument reduction needed */
else {