If FLT_EVEL_METHOD is 2 use long double math to generate NaN results.
authordrepper <drepper>
Tue, 27 Dec 2005 21:43:28 +0000 (21:43 +0000)
committerdrepper <drepper>
Tue, 27 Dec 2005 21:43:28 +0000 (21:43 +0000)
stdio-common/tstdiomisc.c

index 452a21f..9aade2b 100644 (file)
@@ -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);