diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-09-28 23:11:33 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-09-28 23:11:33 +0000 |
commit | c0ac34e4472e5f3b5fdf1557480e2b2c1cc72aed (patch) | |
tree | 428164e4a1b3ba35e5469c2d21aeb5c84afa8003 /math | |
parent | 8cab1d380a9a9743ed825533f389e0edb7b777d0 (diff) | |
download | glibc-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/Makefile | 1 | ||||
-rw-r--r-- | math/test-fenv.c | 18 |
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); } |