+2015-02-11 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #15467]
+ * sysdeps/ieee754/dbl-64/s_sincos.c: Include <errno.h>.
+ (__sincos): Set errno to EDOM for infinite argument.
+ * sysdeps/ieee754/flt-32/s_sincosf.c: Include <errno.h>.
+ (SINCOSF_FUNC): Set errno to EDOM for infinite argument.
+ * sysdeps/ieee754/ldbl-128/s_sincosl.c: Include <errno.h>.
+ (__sincosl): Set errno to EDOM for infinite argument.
+ * sysdeps/ieee754/ldbl-128ibm/s_sincosl.c: Include <errno.h>.
+ (__sincosl): Set errno to EDOM for infinite argument.
+ * sysdeps/ieee754/ldbl-96/s_sincosl.c: Include <errno.h>.
+ (__sincosl): Set errno to EDOM for infinite argument.
+ * math/libm-test.inc (sincos_test_data): Test errno setting.
+
2015-02-11 Leonhard Holz <leonhard.holz@web.de>
* string/strxfrm_l.c: Remove #define STRCMP.
* The following bugs are resolved with this release:
- 4719, 17912, 17932, 17944, 17949.
+ 4719, 15467, 17912, 17932, 17944, 17949.
\f
Version 2.21
static const struct test_fFF_11_data sincos_test_data[] =
{
- TEST_fFF_11 (sincos, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_fFF_11 (sincos, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION),
- TEST_fFF_11 (sincos, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_fFF_11 (sincos, plus_infty, qnan_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_fFF_11 (sincos, minus_infty, qnan_value, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_fFF_11 (sincos, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
AUTO_TESTS_fFF_11 (sincos),
};
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <errno.h>
#include <math.h>
#include <math_private.h>
{
/* sin(Inf or NaN) is NaN */
*sinx = *cosx = x - x;
+ if (__isinf_ns (x))
+ __set_errno (EDOM);
}
else
{
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <errno.h>
#include <math.h>
#include <math_private.h>
{
/* sin(Inf or NaN) is NaN */
*sinx = *cosx = x - x;
+ if (ix == 0x7f800000)
+ __set_errno (EDOM);
}
else
{
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <errno.h>
#include <math.h>
#include <math_private.h>
{
/* sin(Inf or NaN) is NaN */
*sinx = *cosx = x - x;
+ if (__isinf_nsl (x))
+ __set_errno (EDOM);
}
else
{
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <errno.h>
#include <math.h>
#include <math_private.h>
{
/* sin(Inf or NaN) is NaN */
*sinx = *cosx = x - x;
+ if (__isinf_nsl (x))
+ __set_errno (EDOM);
}
else
{
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#include <errno.h>
#include <math.h>
#include <math_private.h>
{
/* sin(Inf or NaN) is NaN */
*sinx = *cosx = x - x;
+ if (__isinf_nsl (x))
+ __set_errno (EDOM);
}
else
{