aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDavid Schultz <das@FreeBSD.org>2007-12-09 20:16:48 +0000
committerDavid Schultz <das@FreeBSD.org>2007-12-09 20:16:48 +0000
commit4e97f925b6c28c828ccb6bb747f070916e70ef07 (patch)
tree463baa72d36d39527b50f41d1cda7bbe1d46660a /tools
parent2aec24b5153d07b56d57e9ae6a1ed453099f92de (diff)
Notes
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/lib/msun/test-lround.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/regression/lib/msun/test-lround.c b/tools/regression/lib/msun/test-lround.c
index 4904abe8eefd..2a373670f911 100644
--- a/tools/regression/lib/msun/test-lround.c
+++ b/tools/regression/lib/msun/test-lround.c
@@ -37,9 +37,14 @@ __FBSDID("$FreeBSD$");
#include <math.h>
#include <stdio.h>
+/*
+ * XXX The volatile here is to avoid gcc's bogus constant folding and work
+ * around the lack of support for the FENV_ACCESS pragma.
+ */
#define test(func, x, result, excepts) do { \
+ volatile double _d = x; \
assert(feclearexcept(FE_ALL_EXCEPT) == 0); \
- assert((func)(x) == (result) || fetestexcept(FE_INVALID)); \
+ assert((func)(_d) == (result) || fetestexcept(FE_INVALID)); \
assert(fetestexcept(FE_ALL_EXCEPT) == (excepts)); \
} while (0)