aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-12-27 21:45:22 +0000
committerUlrich Drepper <drepper@redhat.com>2005-12-27 21:45:22 +0000
commit11f685f5d8f9db81ed37607dadd1d10f280e4964 (patch)
treee82e4245e4c7302ccd49aa9134ca053d069af507 /stdio-common
parent* sysdeps/unix/sysv/linux/sparc/bits/errno.h: Define EOWNERDEAD (diff)
downloadglibc-11f685f5d8f9db81ed37607dadd1d10f280e4964.tar.gz
glibc-11f685f5d8f9db81ed37607dadd1d10f280e4964.tar.bz2
glibc-11f685f5d8f9db81ed37607dadd1d10f280e4964.zip
* stdio-common/tstdiomisc.c: If FLT_EVEL_METHOD is 2 use long
double math to generate NaN results.
Diffstat (limited to 'stdio-common')
-rw-r--r--stdio-common/tstdiomisc.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/stdio-common/tstdiomisc.c b/stdio-common/tstdiomisc.c
index 452a21f9cb..9aade2b1a7 100644
--- a/stdio-common/tstdiomisc.c
+++ b/stdio-common/tstdiomisc.c
@@ -46,6 +46,16 @@ t2 (void)
return result;
}
+#if FLT_EVAL_METHOD == 2
+volatile long double dbl_max = LDBL_MAX;
+# define FLT_FLT_FMT "%Lf %LF"
+# define FLT_FLT_WFMT L"%Lf %LF"
+#else
+volatile double dbl_max = DBL_MAX;
+# define FLT_FLT_FMT "%f %F"
+# define FLT_FLT_WFMT L"%f %F"
+#endif
+
static int
F (void)
{
@@ -53,8 +63,9 @@ F (void)
wchar_t wbuf[10];
int result;
- snprintf (buf, sizeof buf, "%f %F", DBL_MAX * DBL_MAX - DBL_MAX * DBL_MAX,
- DBL_MAX * DBL_MAX - DBL_MAX * DBL_MAX);
+ snprintf (buf, sizeof buf, FLT_FLT_FMT,
+ dbl_max * dbl_max - dbl_max * dbl_max,
+ dbl_max * dbl_max - dbl_max * dbl_max);
result = strcmp (buf, "nan NAN") != 0;
printf ("expected \"nan NAN\", got \"%s\"\n", buf);
@@ -62,9 +73,9 @@ F (void)
result |= strcmp (buf, "inf INF") != 0;
printf ("expected \"inf INF\", got \"%s\"\n", buf);
- swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%f %F",
- DBL_MAX * DBL_MAX - DBL_MAX * DBL_MAX,
- DBL_MAX * DBL_MAX - DBL_MAX * DBL_MAX);
+ swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), FLT_FLT_WFMT,
+ dbl_max * dbl_max - dbl_max * dbl_max,
+ dbl_max * dbl_max - dbl_max * dbl_max);
result |= wcscmp (wbuf, L"nan NAN") != 0;
printf ("expected L\"nan NAN\", got L\"%S\"\n", wbuf);