From 1ff950ad20111b591ad1312df4d802de9d1f1b1e Mon Sep 17 00:00:00 2001 From: Chris Metcalf Date: Tue, 30 Dec 2014 14:11:13 -0500 Subject: [PATCH] Fix some warnings in the absence of FP round/exception support Due to tile missing a bunch of FP exception and rounding support, the tests generate warnings. These changes fix the warnings by just not compiling some unused functions, and adding some attribute ((unused)) tags. --- ChangeLog | 14 ++++++++++++++ math/libm-test.inc | 7 ++++--- math/test-fenv.c | 14 ++++++++++---- setjmp/tst-setjmp-fp.c | 2 +- stdio-common/tst-printf-round.c | 2 +- stdlib/tst-strtod-round.c | 2 +- stdlib/tst-strtod-underflow.c | 2 +- 7 files changed, 32 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5780c3a7f0..d6c2d287f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2014-12-30 Chris Metcalf + + * math/test-fenv.c (test_single_exception, set_single_exc, + feenv_nomask_test, feenv_mask_test, feexcp_nomask_test, + feexcp_mask_test, feenable_test, fe_single_test): Add + [!FE_ALL_EXCEPT] test so these routines are not compiled in the + case where they are not used. + * math/libm-test.inc: Likewise. + * setjmp/test-setjmp-fp.c: Mark attribute ((unused)) on variable + unused in the absence of FP rounding/exception support. + * stdio-common/tst-printf-round.c: Likewise. + * stdlib/tst-strtod-round.c: Likewise. + * stdlib/tst-strtod-underflow.c: Likewise. + 2014-12-30 Joseph Myers [BZ #17723] diff --git a/math/libm-test.inc b/math/libm-test.inc index f86a4fa054..b44b2db7c9 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -590,6 +590,7 @@ print_complex_max_error (const char *func_name) } +#if FE_ALL_EXCEPT /* Test whether a given exception was raised. */ static void test_single_exception (const char *test_name, @@ -598,7 +599,7 @@ test_single_exception (const char *test_name, int fe_flag, const char *flag_name) { -#ifndef TEST_INLINE +# ifndef TEST_INLINE int ok = 1; if (exception & exc_flag) { @@ -634,9 +635,9 @@ test_single_exception (const char *test_name, if (!ok) ++noErrors; -#endif +# endif } - +#endif /* Test whether exceptions given by EXCEPTION are raised. Ignore thereby allowed but not required exceptions. diff --git a/math/test-fenv.c b/math/test-fenv.c index 23e47d4f36..0783fb1c5c 100644 --- a/math/test-fenv.c +++ b/math/test-fenv.c @@ -54,6 +54,7 @@ static int count_errors; +#if FE_ALL_EXCEPT /* Test whether a given exception was raised. */ static void test_single_exception (short int exception, @@ -84,6 +85,7 @@ test_single_exception (short int exception, } } } +#endif static void test_exceptions (const char *test_name, short int exception, @@ -164,6 +166,7 @@ test_rounding (const char *test_name, int rounding_mode) } +#if FE_ALL_EXCEPT static void set_single_exc (const char *test_name, int fe_exc, fexcept_t exception) { @@ -195,6 +198,7 @@ set_single_exc (const char *test_name, int fe_exc, fexcept_t exception) feclearexcept (exception); test_exceptions (str, ALL_EXC ^ fe_exc, 0); } +#endif static void fe_tests (void) @@ -227,11 +231,12 @@ fe_tests (void) #endif } +#if FE_ALL_EXCEPT /* Test that program aborts with no masked interrupts */ static void feenv_nomask_test (const char *flag_name, int fe_exc) { -#if defined FE_NOMASK_ENV +# if defined FE_NOMASK_ENV int status; pid_t pid; @@ -247,13 +252,13 @@ feenv_nomask_test (const char *flag_name, int fe_exc) pid = fork (); if (pid == 0) { -#ifdef RLIMIT_CORE +# ifdef RLIMIT_CORE /* Try to avoid dumping core. */ struct rlimit core_limit; core_limit.rlim_cur = 0; core_limit.rlim_max = 0; setrlimit (RLIMIT_CORE, &core_limit); -#endif +# endif fesetenv (FE_NOMASK_ENV); feraiseexcept (fe_exc); @@ -284,7 +289,7 @@ feenv_nomask_test (const char *flag_name, int fe_exc) ++count_errors; } } -#endif +# endif } /* Test that program doesn't abort with default environment */ @@ -613,6 +618,7 @@ fe_single_test (const char *flag_name, int fe_exc) feenv_mask_test (flag_name, fe_exc); feenable_test (flag_name, fe_exc); } +#endif static void diff --git a/setjmp/tst-setjmp-fp.c b/setjmp/tst-setjmp-fp.c index d84c47ed5c..8cdb5356a1 100644 --- a/setjmp/tst-setjmp-fp.c +++ b/setjmp/tst-setjmp-fp.c @@ -22,7 +22,7 @@ #include #include -static jmp_buf env; +static jmp_buf __attribute__ ((unused)) env; static int result = 0; #if defined FE_TONEAREST && defined FE_TOWARDZERO diff --git a/stdio-common/tst-printf-round.c b/stdio-common/tst-printf-round.c index 5035ddae4c..6022edf26d 100644 --- a/stdio-common/tst-printf-round.c +++ b/stdio-common/tst-printf-round.c @@ -164,7 +164,7 @@ test_hex_in_one_mode (double d, const char *fmt, const char *const expected[4], static int do_test (void) { - int save_round_mode = fegetround (); + int save_round_mode __attribute__ ((unused)) = fegetround (); int result = 0; for (size_t i = 0; i < sizeof (dec_tests) / sizeof (dec_tests[0]); i++) diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c index cbde457451..2a278d0871 100644 --- a/stdlib/tst-strtod-round.c +++ b/stdlib/tst-strtod-round.c @@ -7874,7 +7874,7 @@ test_in_one_mode (const char *s, const struct test_results *expected, static int do_test (void) { - int save_round_mode = fegetround (); + int save_round_mode __attribute__ ((unused)) = fegetround (); int result = 0; for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++) { diff --git a/stdlib/tst-strtod-underflow.c b/stdlib/tst-strtod-underflow.c index bc2374188b..82bb483fcf 100644 --- a/stdlib/tst-strtod-underflow.c +++ b/stdlib/tst-strtod-underflow.c @@ -171,7 +171,7 @@ test_in_one_mode (const char *s, enum underflow_case c, int rm, static int do_test (void) { - int save_round_mode = fegetround (); + int save_round_mode __attribute__ ((unused)) = fegetround (); int result = 0; #ifdef FE_TONEAREST const int fe_tonearest = FE_TONEAREST; -- 2.43.5