From d0cd7d02120a1700a9b9f2b5601c35142f1be44b Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 16 Jul 2012 16:51:13 +0200 Subject: [PATCH] Fix bug-getcontext test --- ChangeLog | 5 +++++ stdlib/bug-getcontext.c | 25 ++++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index bc144a034b..f6c1cc5a40 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-07-16 Andreas Schwab + + * stdlib/bug-getcontext.c (do_test): Don't test FE_ALL_EXCEPT in + preprocessor. Test for each exception mask separately. + 2012-07-16 Andreas Jaeger * po/ru.po: Update from translation team. diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c index 7db49c8499..133ee91eff 100644 --- a/stdlib/bug-getcontext.c +++ b/stdlib/bug-getcontext.c @@ -9,10 +9,25 @@ static int do_test (void) { -#if FE_ALL_EXCEPT == 0 - printf("Skipping test; no support for FP exceptions.\n"); -#else - int except_mask = FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW; + if (FE_ALL_EXCEPT == 0) + { + printf("Skipping test; no support for FP exceptions.\n"); + return 0; + } + + int except_mask = 0; +#ifdef FE_DIVBYZERO + except_mask |= FE_DIVBYZERO; +#endif +#ifdef FE_INVALID + except_mask |= FE_INVALID; +#endif +#ifdef FE_OVERFLOW + except_mask |= FE_OVERFLOW; +#endif +#ifdef FE_UNDERFLOW + except_mask |= FE_UNDERFLOW; +#endif int status = feenableexcept (except_mask); except_mask = fegetexcept (); @@ -44,7 +59,7 @@ do_test (void) printf("\nAt end fegetexcept() returned %d, expected: %d.\n", mask, except_mask); -#endif + return 0; }