]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Effectively revert an upstream patch to print signs on NaN values.
authorPaul Pluzhnikov <ppluzhnikov@google.com>
Mon, 3 Mar 2014 17:18:29 +0000 (09:18 -0800)
committerPaul Pluzhnikov <ppluzhnikov@google.com>
Mon, 3 Mar 2014 17:18:29 +0000 (09:18 -0800)
README.google
stdio-common/printf_fp.c
stdio-common/printf_fphex.c
stdio-common/tstdiomisc.c

index b1a2c0c70071a3233b04641b32f033c841586591..6322484c300da79ad1004b75223c728a745912c6 100644 (file)
@@ -147,3 +147,11 @@ misc/sys/cdefs.h
   Forward-ported from cl/51334004 (from cl/53404-p2).
   (swiecki, google-local)
 
+stdio-common/print_fp.c
+stdio-common/print_fphex.c
+stdio-common/tstdiomisc.c
+  Effectively revert an upstream patch to print signs on NaN values.  This
+  change causes many google3 test failures, and the signs are meaningless.
+  Forward-ported from cl/51376114 (from cl/41709-p2).
+  (ppluzhnikov, google-local)
+
index 7a3292cf9712bbd7c26a7c0ea11d93bc5f0f3c43..1c8e2fcfbebc3f47435ef08d5d3066a51570f39c 100644 (file)
@@ -332,7 +332,9 @@ ___printf_fp (FILE *fp,
       int res;
       if (__isnanl (fpnum.ldbl))
        {
+#if 0  // Google-local: don't print "-nan".
          is_neg = signbit (fpnum.ldbl);
+#endif
          if (isupper (info->spec))
            {
              special = "NAN";
@@ -377,8 +379,10 @@ ___printf_fp (FILE *fp,
       int res;
       if (__isnan (fpnum.dbl))
        {
+#if 0  // Google-local: don't print "-nan".
          union ieee754_double u = { .d = fpnum.dbl };
          is_neg = u.ieee.negative != 0;
+#endif
          if (isupper (info->spec))
            {
              special = "NAN";
index 4599867b3fbdf374b0f7bc67be56f16855dc9e55..888d98888c4a63dceee895b25c9367146a56b14a 100644 (file)
@@ -167,6 +167,9 @@ __printf_fphex (FILE *fp,
       /* Check for special values: not a number or infinity.  */
       if (__isnanl (fpnum.ldbl))
        {
+#if 1    // Google-local: don't print "-nan".
+         negative = 0;
+#endif
          if (isupper (info->spec))
            {
              special = "NAN";
@@ -180,6 +183,9 @@ __printf_fphex (FILE *fp,
        }
       else
        {
+#if 1    // Google-local: move this from below due to NaN handling.
+         negative = signbit (fpnum.ldbl);
+#endif
          if (__isinfl (fpnum.ldbl))
            {
              if (isupper (info->spec))
@@ -194,7 +200,9 @@ __printf_fphex (FILE *fp,
                }
            }
        }
+#if 0 // Google-local: move this up due to NaN handling.
       negative = signbit (fpnum.ldbl);
+#endif
     }
   else
 #endif /* no long double */
@@ -204,7 +212,11 @@ __printf_fphex (FILE *fp,
       /* Check for special values: not a number or infinity.  */
       if (__isnan (fpnum.dbl.d))
        {
+#if 1  // Google-local: don't print "-nan".
+         negative = 0;
+#else
          negative = fpnum.dbl.ieee.negative != 0;
+#endif
          if (isupper (info->spec))
            {
              special = "NAN";
index 5a25ecc9f09e443f3f6e06ddee7132e44d1091bf..4f6fcbe6c929ebc24df371d5615a7ef8b2079321 100644 (file)
@@ -76,9 +76,15 @@ F (void)
   snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
            -qnanval, -qnanval, -qnanval, -qnanval,
            -qnanval, -qnanval, -qnanval, -qnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n",
+         buf);
+#else
   result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
          buf);
+#endif
 
   snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
            snanval, snanval, snanval, snanval,
@@ -89,9 +95,15 @@ F (void)
   snprintf (buf, sizeof buf, "%a %A %e %E %f %F %g %G",
            msnanval, msnanval, msnanval, msnanval,
            msnanval, msnanval, msnanval, msnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n",
+         buf);
+#else
   result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
          buf);
+#endif
 
   infval = DBL_MAX * DBL_MAX;
 
@@ -116,9 +128,15 @@ F (void)
   swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
            -qnanval, -qnanval, -qnanval, -qnanval,
            -qnanval, -qnanval, -qnanval, -qnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n",
+         wbuf);
+#else
   result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
          wbuf);
+#endif
 
   swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
            snanval, snanval, snanval, snanval,
@@ -129,9 +147,15 @@ F (void)
   swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
            msnanval, msnanval, msnanval, msnanval,
            msnanval, msnanval, msnanval, msnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n",
+         wbuf);
+#else
   result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
          wbuf);
+#endif
 
   swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]), L"%a %A %e %E %f %F %g %G",
            infval, infval, infval, infval, infval, infval, infval, infval);
@@ -156,9 +180,15 @@ F (void)
   snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
            -lqnanval, -lqnanval, -lqnanval, -lqnanval,
            -lqnanval, -lqnanval, -lqnanval, -lqnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n",
+         buf);
+#else
   result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
          buf);
+#endif
 
   snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
            lsnanval, lsnanval, lsnanval, lsnanval,
@@ -169,9 +199,15 @@ F (void)
   snprintf (buf, sizeof buf, "%La %LA %Le %LE %Lf %LF %Lg %LG",
            lmsnanval, lmsnanval, lmsnanval, lmsnanval,
            lmsnanval, lmsnanval, lmsnanval, lmsnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= strcmp (buf, "nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected \"nan NAN nan NAN nan NAN nan NAN\", got \"%s\"\n",
+         buf);
+#else
   result |= strcmp (buf, "-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected \"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got \"%s\"\n",
          buf);
+#endif
 
   linfval = LDBL_MAX * LDBL_MAX;
 
@@ -199,9 +235,15 @@ F (void)
            L"%La %LA %Le %LE %Lf %LF %Lg %LG",
            -lqnanval, -lqnanval, -lqnanval, -lqnanval,
            -lqnanval, -lqnanval, -lqnanval, -lqnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n",
+         wbuf);
+#else
   result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
          wbuf);
+#endif
 
   swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
            L"%La %LA %Le %LE %Lf %LF %Lg %LG",
@@ -214,9 +256,15 @@ F (void)
            L"%La %LA %Le %LE %Lf %LF %Lg %LG",
            lmsnanval, lmsnanval, lmsnanval, lmsnanval,
            lmsnanval, lmsnanval, lmsnanval, lmsnanval);
+#if 1  // Google-local: don't print "-nan".
+  result |= wcscmp (wbuf, L"nan NAN nan NAN nan NAN nan NAN") != 0;
+  printf ("expected L\"nan NAN nan NAN nan NAN nan NAN\", got L\"%S\"\n",
+         wbuf);
+#else
   result |= wcscmp (wbuf, L"-nan -NAN -nan -NAN -nan -NAN -nan -NAN") != 0;
   printf ("expected L\"-nan -NAN -nan -NAN -nan -NAN -nan -NAN\", got L\"%S\"\n",
          wbuf);
+#endif
 
   swprintf (wbuf, sizeof wbuf / sizeof (wbuf[0]),
            L"%La %LA %Le %LE %Lf %LF %Lg %LG",