[libc] fix strtofloat on large exponents
authorMichael Jones <michaelrj@google.com>
Mon, 3 Apr 2023 21:00:43 +0000 (14:00 -0700)
committerMichael Jones <michaelrj@google.com>
Wed, 5 Apr 2023 16:58:31 +0000 (09:58 -0700)
commitcc65ecfd08fbcd1dbfa21532830877460432b4da
tree96ddaf75b61cb14514bb2dc3fc99473a092b8dee
parent0e6d7eceaac376bb193700b64ba4ededcac5dc82
[libc] fix strtofloat on large exponents

Previously if you specified an exponent of more than 10000 in string to
float (e.g. "1e10001") it would treat it as 10000. A bug was discovered
where by having more than 10000 zeroes after a decimal point and an
exponent of more than 10000 this would cause the code to return the
incorrect value.

Reviewed By: lntue

Differential Revision: https://reviews.llvm.org/D147474
libc/src/__support/str_to_float.h
libc/test/src/stdlib/strtod_test.cpp