[Bug libstdc++/107468] std::from_chars doesn't always round to nearest

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Nov 7 14:17:57 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107468

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:cb0ceeaee9e041aaac3edd089b07b439621d0f29

commit r13-3755-gcb0ceeaee9e041aaac3edd089b07b439621d0f29
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon Nov 7 15:17:21 2022 +0100

    libstdc++: Update from latest fast_float [PR107468]

    The following patch updates from fast_float trunk.  That way
    it grabs two of the 4 LOCAL_PATCHES, some smaller tweaks, to_extended
    cleanups and most importantly fix for the incorrect rounding case,
    PR107468 aka https://github.com/fastfloat/fast_float/issues/149
    Using std::fegetround showed in benchmarks too slow, so instead of
    doing that the patch limits the fast path where it uses floating
    point multiplication rather than integral to cases where we can
    prove there will be no rounding (the multiplication will be exact, not
    just that the two multiplication or division operation arguments are
    exactly representable).

    2022-11-07  Jakub Jelinek  <jakub@redhat.com>

            PR libstdc++/107468
            * src/c++17/fast_float/MERGE: Adjust for merge from upstream.
            * src/c++17/fast_float/LOCAL_PATCHES: Remove commits that were
            upstreamed.
            * src/c++17/fast_float/README.md: Merge from fast_float
            662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
            * src/c++17/fast_float/fast_float.h: Likewise.
            * testsuite/20_util/from_chars/pr107468.cc: New test.


More information about the Gcc-bugs mailing list