Michael Jones
f1990feb35
[libc] add fuzz target for strtointeger functions
...
The string to integer conversion functions are well suited to
differential fuzzing, and this patch adds a target to enable just that.
It also fixes a bug in the fuzzing comparison logic and changes atoi
slightly to match the behavior described in the C standard.
Reviewed By: sivachandra, lntue
Differential Revision: https://reviews.llvm.org/D140178
2022-12-20 10:48:34 -08:00
Siva Chandra Reddy
d9bbad277c
[libc][Obvious][NFC] A bunch of cosmetic cleanup.
...
* Added missing header guards.
* Fixed license header format in a few files.
* Renamed files to more suitable names.
2021-11-19 17:02:55 +00:00
Michael Jones
87c016078a
[libc] add atof, strtof and strtod
...
Add the string to floating point conversion functions.
Long doubles aren't supported yet, but floats and doubles are. The
primary algorithm used is the Eisel-Lemire ParseNumberF64 algorithm,
with the Simple Decimal Conversion algorithm as backup.
Links for more information on the algorithms:
Number Parsing at a Gigabyte per Second, Software: Practice and
Experience 51 (8), 2021 (https://arxiv.org/abs/2101.11408 )
https://nigeltao.github.io/blog/2020/eisel-lemire.html
https://nigeltao.github.io/blog/2020/parse-number-f64-simple.html
Differential Revision: https://reviews.llvm.org/D109261
2021-10-18 16:10:03 -07:00
Siva Chandra Reddy
5eb6b82729
[libc] Add an implementation of qsort.
...
A fuzzer for qsort has also been added.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D110382
2021-09-24 19:22:45 +00:00