aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-09-28 23:11:33 +0000
committerUlrich Drepper <drepper@redhat.com>2000-09-28 23:11:33 +0000
commitc0ac34e4472e5f3b5fdf1557480e2b2c1cc72aed (patch)
tree428164e4a1b3ba35e5469c2d21aeb5c84afa8003 /math
parent8cab1d380a9a9743ed825533f389e0edb7b777d0 (diff)
downloadglibc-c0ac34e4472e5f3b5fdf1557480e2b2c1cc72aed.zip
glibc-c0ac34e4472e5f3b5fdf1557480e2b2c1cc72aed.tar.gz
glibc-c0ac34e4472e5f3b5fdf1557480e2b2c1cc72aed.tar.bz2
Update.
* mutex.c (__pthread_mutex_unlock): For PTHREAD_MUTEX_RECURSIVE_NP test for owner first. Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
Diffstat (limited to 'math')
-rw-r--r--math/Makefile1
-rw-r--r--math/test-fenv.c18
2 files changed, 18 insertions, 1 deletions
diff --git a/math/Makefile b/math/Makefile
index 45df416..2e24019 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -83,6 +83,7 @@ tests = test-matherr test-fenv atest-exp atest-sincos atest-exp2 basic-test \
# We do the `long double' tests only if this data type is available and
# distinct from `double'.
test-longdouble-yes = test-ldouble test-ildoubl
+distribute += $(test-longdouble-yes:=.c)
ifneq (no,$(PERL))
libm-tests = test-float test-double $(test-longdouble-$(long-double-fcts)) \
diff --git a/math/test-fenv.c b/math/test-fenv.c
index d803f27..c369fc0 100644
--- a/math/test-fenv.c
+++ b/math/test-fenv.c
@@ -400,6 +400,7 @@ static void
feexcp_mask_test (const char *flag_name, int fe_exc)
{
int status;
+ int exception;
pid_t pid;
printf ("Test: after fedisable (%s) processes will not abort\n", flag_name);
@@ -415,7 +416,22 @@ feexcp_mask_test (const char *flag_name, int fe_exc)
setrlimit (RLIMIT_CORE, &core_limit);
#endif
feenableexcept (FE_ALL_EXCEPT);
- fedisableexcept (fe_exc);
+ exception = fe_exc;
+#ifdef FE_INEXACT
+ /* The standard allows the inexact exception to be set together with the
+ underflow and overflow exceptions. So add FE_INEXACT to the set of
+ exceptions to be disabled if we will be raising underflow or
+ overflow. */
+# ifdef FE_OVERFLOW
+ if (fe_exc & FE_OVERFLOW)
+ exception |= FE_INEXACT;
+# endif
+# ifdef FE_UNDERFLOW
+ if (fe_exc & FE_UNDERFLOW)
+ exception |= FE_INEXACT;
+# endif
+#endif
+ fedisableexcept (exception);
feraiseexcept (fe_exc);
exit (2);
}