aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@ezchip.com>2014-12-30 14:11:13 -0500
committerChris Metcalf <cmetcalf@ezchip.com>2014-12-30 14:11:13 -0500
commit1ff950ad20111b591ad1312df4d802de9d1f1b1e (patch)
tree6634ad2285443326d46d32a27f5d0d568ea5452e
parent0f9dfe0432a90441be688f2776aa19fedbfcdcbb (diff)
downloadglibc-1ff950ad20111b591ad1312df4d802de9d1f1b1e.tar
glibc-1ff950ad20111b591ad1312df4d802de9d1f1b1e.tar.gz
glibc-1ff950ad20111b591ad1312df4d802de9d1f1b1e.tar.bz2
glibc-1ff950ad20111b591ad1312df4d802de9d1f1b1e.zip
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.
-rw-r--r--ChangeLog14
-rw-r--r--math/libm-test.inc7
-rw-r--r--math/test-fenv.c14
-rw-r--r--setjmp/tst-setjmp-fp.c2
-rw-r--r--stdio-common/tst-printf-round.c2
-rw-r--r--stdlib/tst-strtod-round.c2
-rw-r--r--stdlib/tst-strtod-underflow.c2
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 <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]
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 <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
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;