diff options
author | A. Jiang <de34@live.cn> | 2024-05-22 01:05:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-21 19:05:51 +0200 |
commit | 3e15c97fa3812993bdc319827a5c6d867b765ae8 (patch) | |
tree | 6bef3557b4c2256766c50b9514f4022322cdccaa /lldb/source/Commands/CommandObjectThread.cpp | |
parent | 0eca2655843e1b79e6c65c7239bce8c9a1509568 (diff) | |
download | llvm-3e15c97fa3812993bdc319827a5c6d867b765ae8.zip llvm-3e15c97fa3812993bdc319827a5c6d867b765ae8.tar.gz llvm-3e15c97fa3812993bdc319827a5c6d867b765ae8.tar.bz2 |
[libc++] LWG2381: Inconsistency in parsing floating point numbers (#77948)
This PR implements [LWG2381](https://cplusplus.github.io/LWG/issue2381)
by rejecting `'i'`, `'I'`, `'n'`, `'N'` in FP parsing, as inf and NaN
are intendedly rejected by that LWG issue.
The source character array used for parsing is
`"0123456789abcdefABCDEFxX+-pPiInN"`, whose first 26 or 28 characters
are used for parsing integers or floating-point values respectively.
Previously, libc++ used 32 characters, including `'i'`, `'I'`, `'n'`,
`'N'`, for FP parsing, which was inconsistent with LWG2381. This PR also
replaces magic numbers 26 and 28 (formerly 32) with named constants.
Drive-by change: when the first character (possibly after the leading
`'+'` or `'-'`) is not a decimal digit but an acceptable character
(e.g., `'p'` or `'e'`), the character is not accumulated now (per Stage
2 in [facet.num.get.virtuals]/3).
#65168 may be rendered invalid, see
https://github.com/llvm/llvm-project/pull/65168#issuecomment-1868533342.
Apple back-deployment targets remain broken, likely due to dylib. XFAIL
is marked in related tests.
---------
Co-authored-by: Mark de Wever <koraq@xs4all.nl>
Diffstat (limited to 'lldb/source/Commands/CommandObjectThread.cpp')
0 files changed, 0 insertions, 0 deletions