[libc-commits] [PATCH] D130032: [libc] fix strtofloatingpoint on rare edge case

Michael Jones via Phabricator via libc-commits libc-commits at lists.llvm.org
Mon Jul 18 11:36:06 PDT 2022


michaelrj created this revision.
michaelrj added reviewers: sivachandra, lntue.
Herald added subscribers: libc-commits, ecnelises, tschuett.
Herald added projects: libc-project, All.
michaelrj requested review of this revision.

Currently, there are two string parsers that can be used in a call to
strtofloatingpoint. There is the main parser used by Clinger's fast path
and Eisel-Lemire, and the backup parser used by Simple Decimal
Conversion. There was a bug in the backup parser where if the number had
more than 800 digits (the size of the SDC buffer) before the decimal
point, it would just ignore the digits after the 800th and not count
them into the exponent. This patch fixes that issue and adds regression
tests.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D130032

Files:
  libc/src/__support/high_precision_decimal.h
  libc/test/src/__support/str_to_float_comparison_data.txt
  libc/test/src/stdlib/strtod_test.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D130032.445580.patch
Type: text/x-patch
Size: 8321 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libc-commits/attachments/20220718/2c628a48/attachment.bin>


More information about the libc-commits mailing list