[Bug libc/18247] strtof is not correctly rounded for 2^-150+eps

cvs-commit at gcc dot gnu.org sourceware-bugzilla@sourceware.org
Fri Apr 10 20:46:00 GMT 2015


https://sourceware.org/bugzilla/show_bug.cgi?id=18247

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  5556d30caee170384553d2ae3247ec77a66b9ae8 (commit)
      from  b3c66c534f8a9dbee44aa4983814fc52008f0323 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5556d30caee170384553d2ae3247ec77a66b9ae8

commit 5556d30caee170384553d2ae3247ec77a66b9ae8
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri Apr 10 20:45:30 2015 +0000

    Fix strtof decimal rounding close to half least subnormal (bug 18247).

    Bug 18247 is an off-by-one error in strtof's determination of a
    decimal exponent such that any value with that decimal exponent is at
    most half the least subnormal and so the appropriate underflowing
    value for the rounding mode can be determined with no
    multiple-precision computations.  (Whether the value is in fact safe
    despite the off-by-one depends on the floating-point format in
    question.  It's wrong for float and for m68k ldbl-96 but not for other
    supported formats.)  This patch corrects the computation of the
    exponent in question to be safe in general, adding a comment
    explaining the new computation.

    Tested for x86_64.

        [BZ #18247]
        * stdlib/strtod_l.c (____STRTOF_INTERNAL): Decrease minimum
        decimal exponent by 1.
        * stdlib/tst-strtod-round-data: Add more tests.
        * stdlib/tst-strtod-round.c (tests): Regenerated.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                    |    8 +
 NEWS                         |    2 +-
 stdlib/strtod_l.c            |   13 +-
 stdlib/tst-strtod-round-data |   31 +
 stdlib/tst-strtod-round.c    | 4638 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 4689 insertions(+), 3 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.



More information about the Glibc-bugs mailing list