diff options
author | Zakaria Fadli <fadli@adacore.com> | 2025-09-22 19:11:33 +0200 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2025-09-22 14:54:00 -0400 |
commit | 63dc988ac7454b701ee923590f18df4103587994 (patch) | |
tree | cef15e41c706117180943e674a7ce8ec056b069b /winsup/cygwin/local_includes/mmap_alloc.h | |
parent | 8a5d39527f9a56d1a623e86d30af6b590fd1472d (diff) | |
download | newlib-master.zip newlib-master.tar.gz newlib-master.tar.bz2 |
The implementation of strtorQ is imported from FreeBSD's gdtoa library (By David
M. Gay) with some adaptations to fit with newlib.
`strtorQ.c` enables `strtold` to perform correct parsing on targets where long
double uses the IEEE754 binary128 format (113-bit mantissa), such as AArch64.
Without this patch, strtold would wrongly fallback to `strtorx` which will
parse into a 80-bit long double and give invalid result.
* libc/stdlib/strtorQ.c: New file, adapted from FreeBSD gdtoa.
* libc/stdlib/strtold.c (_strtold_impl): New helper selecting strtorx
for 80-bit and strtorQ for 128-bit long double.
(_strtold_r, strtold_l, strtold): Use _strtold_impl.
* libc/stdlib/mprec.h (_strtorQ_l): Declare.
* libc/stdlib/Makefile.inc (libc_a_SOURCES): Add strtorQ.c.
* newlib/Makefile.in: Regenerate with automake
Signed-off-by: Zakaria Fadli <fadli@adacore.com>
Diffstat (limited to 'winsup/cygwin/local_includes/mmap_alloc.h')
0 files changed, 0 insertions, 0 deletions