mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03: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:
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>
|
2014-12-30 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
[BZ #17723]
|
[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. */
|
/* Test whether a given exception was raised. */
|
||||||
static void
|
static void
|
||||||
test_single_exception (const char *test_name,
|
test_single_exception (const char *test_name,
|
||||||
@ -598,7 +599,7 @@ test_single_exception (const char *test_name,
|
|||||||
int fe_flag,
|
int fe_flag,
|
||||||
const char *flag_name)
|
const char *flag_name)
|
||||||
{
|
{
|
||||||
#ifndef TEST_INLINE
|
# ifndef TEST_INLINE
|
||||||
int ok = 1;
|
int ok = 1;
|
||||||
if (exception & exc_flag)
|
if (exception & exc_flag)
|
||||||
{
|
{
|
||||||
@ -634,9 +635,9 @@ test_single_exception (const char *test_name,
|
|||||||
if (!ok)
|
if (!ok)
|
||||||
++noErrors;
|
++noErrors;
|
||||||
|
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Test whether exceptions given by EXCEPTION are raised. Ignore thereby
|
/* Test whether exceptions given by EXCEPTION are raised. Ignore thereby
|
||||||
allowed but not required exceptions.
|
allowed but not required exceptions.
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
|
|
||||||
static int count_errors;
|
static int count_errors;
|
||||||
|
|
||||||
|
#if FE_ALL_EXCEPT
|
||||||
/* Test whether a given exception was raised. */
|
/* Test whether a given exception was raised. */
|
||||||
static void
|
static void
|
||||||
test_single_exception (short int exception,
|
test_single_exception (short int exception,
|
||||||
@ -84,6 +85,7 @@ test_single_exception (short int exception,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_exceptions (const char *test_name, short int exception,
|
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
|
static void
|
||||||
set_single_exc (const char *test_name, int fe_exc, fexcept_t exception)
|
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);
|
feclearexcept (exception);
|
||||||
test_exceptions (str, ALL_EXC ^ fe_exc, 0);
|
test_exceptions (str, ALL_EXC ^ fe_exc, 0);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
fe_tests (void)
|
fe_tests (void)
|
||||||
@ -227,11 +231,12 @@ fe_tests (void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if FE_ALL_EXCEPT
|
||||||
/* Test that program aborts with no masked interrupts */
|
/* Test that program aborts with no masked interrupts */
|
||||||
static void
|
static void
|
||||||
feenv_nomask_test (const char *flag_name, int fe_exc)
|
feenv_nomask_test (const char *flag_name, int fe_exc)
|
||||||
{
|
{
|
||||||
#if defined FE_NOMASK_ENV
|
# if defined FE_NOMASK_ENV
|
||||||
int status;
|
int status;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
|
|
||||||
@ -247,13 +252,13 @@ feenv_nomask_test (const char *flag_name, int fe_exc)
|
|||||||
pid = fork ();
|
pid = fork ();
|
||||||
if (pid == 0)
|
if (pid == 0)
|
||||||
{
|
{
|
||||||
#ifdef RLIMIT_CORE
|
# ifdef RLIMIT_CORE
|
||||||
/* Try to avoid dumping core. */
|
/* Try to avoid dumping core. */
|
||||||
struct rlimit core_limit;
|
struct rlimit core_limit;
|
||||||
core_limit.rlim_cur = 0;
|
core_limit.rlim_cur = 0;
|
||||||
core_limit.rlim_max = 0;
|
core_limit.rlim_max = 0;
|
||||||
setrlimit (RLIMIT_CORE, &core_limit);
|
setrlimit (RLIMIT_CORE, &core_limit);
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
fesetenv (FE_NOMASK_ENV);
|
fesetenv (FE_NOMASK_ENV);
|
||||||
feraiseexcept (fe_exc);
|
feraiseexcept (fe_exc);
|
||||||
@ -284,7 +289,7 @@ feenv_nomask_test (const char *flag_name, int fe_exc)
|
|||||||
++count_errors;
|
++count_errors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Test that program doesn't abort with default environment */
|
/* 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);
|
feenv_mask_test (flag_name, fe_exc);
|
||||||
feenable_test (flag_name, fe_exc);
|
feenable_test (flag_name, fe_exc);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
static jmp_buf env;
|
static jmp_buf __attribute__ ((unused)) env;
|
||||||
static int result = 0;
|
static int result = 0;
|
||||||
|
|
||||||
#if defined FE_TONEAREST && defined FE_TOWARDZERO
|
#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
|
static int
|
||||||
do_test (void)
|
do_test (void)
|
||||||
{
|
{
|
||||||
int save_round_mode = fegetround ();
|
int save_round_mode __attribute__ ((unused)) = fegetround ();
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
for (size_t i = 0; i < sizeof (dec_tests) / sizeof (dec_tests[0]); i++)
|
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
|
static int
|
||||||
do_test (void)
|
do_test (void)
|
||||||
{
|
{
|
||||||
int save_round_mode = fegetround ();
|
int save_round_mode __attribute__ ((unused)) = fegetround ();
|
||||||
int result = 0;
|
int result = 0;
|
||||||
for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
|
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
|
static int
|
||||||
do_test (void)
|
do_test (void)
|
||||||
{
|
{
|
||||||
int save_round_mode = fegetround ();
|
int save_round_mode __attribute__ ((unused)) = fegetround ();
|
||||||
int result = 0;
|
int result = 0;
|
||||||
#ifdef FE_TONEAREST
|
#ifdef FE_TONEAREST
|
||||||
const int fe_tonearest = FE_TONEAREST;
|
const int fe_tonearest = FE_TONEAREST;
|
||||||
|
Reference in New Issue
Block a user