diff options
author | Paul Pluzhnikov <ppluzhnikov@google.com> | 2014-03-03 09:18:29 -0800 |
---|---|---|
committer | Paul Pluzhnikov <ppluzhnikov@google.com> | 2014-03-03 09:18:29 -0800 |
commit | f5f58a704cbdd6c8abaa71ce6131645d7308c63c (patch) | |
tree | a13801600822dcd481eaafb4157dda5b936ea403 | |
parent | 63473c36767faa85fe43ad34c3b600adcfdb5e99 (diff) | |
download | glibc-f5f58a704cbdd6c8abaa71ce6131645d7308c63c.tar.gz glibc-f5f58a704cbdd6c8abaa71ce6131645d7308c63c.tar.xz glibc-f5f58a704cbdd6c8abaa71ce6131645d7308c63c.zip |
Effectively revert an upstream patch to print signs on NaN values.
-rw-r--r-- | README.google | 8 | ||||
-rw-r--r-- | stdio-common/printf_fp.c | 4 | ||||
-rw-r--r-- | stdio-common/printf_fphex.c | 12 | ||||
-rw-r--r-- | stdio-common/tstdiomisc.c | 48 |
4 files changed, 72 insertions, 0 deletions
diff --git a/README.google b/README.google index b1a2c0c700..6322484c30 100644 --- a/README.google +++ b/README.google @@ -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) + diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c index 7a3292cf97..1c8e2fcfbe 100644 --- a/stdio-common/printf_fp.c +++ b/stdio-common/printf_fp.c @@ -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"; diff --git a/stdio-common/printf_fphex.c b/stdio-common/printf_fphex.c index 4599867b3f..888d98888c 100644 --- a/stdio-common/printf_fphex.c +++ b/stdio-common/printf_fphex.c @@ -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"; diff --git a/stdio-common/tstdiomisc.c b/stdio-common/tstdiomisc.c index 5a25ecc9f0..4f6fcbe6c9 100644 --- a/stdio-common/tstdiomisc.c +++ b/stdio-common/tstdiomisc.c @@ -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", |