diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-12-27 21:45:22 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-12-27 21:45:22 +0000 |
commit | 11f685f5d8f9db81ed37607dadd1d10f280e4964 (patch) | |
tree | e82e4245e4c7302ccd49aa9134ca053d069af507 /stdio-common/tstdiomisc.c | |
parent | bfffffaee3bf0dd86a8460dc005d0cf840520834 (diff) | |
download | glibc-11f685f5d8f9db81ed37607dadd1d10f280e4964.tar.gz glibc-11f685f5d8f9db81ed37607dadd1d10f280e4964.tar.xz 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/tstdiomisc.c')
-rw-r--r-- | stdio-common/tstdiomisc.c | 21 |
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); |