mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-24 14:41:06 +08:00
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.
This commit is contained in:
parent
0f9dfe0432
commit
1ff950ad20
14
ChangeLog
14
ChangeLog
@ -1,3 +1,17 @@
|
||||
2014-12-30 Chris Metcalf <cmetcalf@ezchip.com>
|
||||
|
||||
* 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 <joseph@codesourcery.com>
|
||||
|
||||
[BZ #17723]
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static jmp_buf env;
|
||||
static jmp_buf __attribute__ ((unused)) env;
|
||||
static int result = 0;
|
||||
|
||||
#if defined FE_TONEAREST && defined FE_TOWARDZERO
|
||||
|
@ -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++)
|
||||
|
@ -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++)
|
||||
{
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user