Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzzer details

Fuzzer: from_chars

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 26 14.7%
gold [1:9] 2 1.13%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.56%
lawngreen 50+ 147 83.5%
All colors 176 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 16 2 :

['fast_float::span ::operator[](unsigned long) const', 'bool fast_float::small_mul<(unsigned short)62>(fast_float::stackvec<(unsigned short)62>&, unsigned long)']

0 16 boolfast_float::large_mul<(unsignedshort)62>(fast_float::stackvec<(unsignedshort)62>&,fast_float::span ) call site: 00000 /src/fast_float/include/fast_float/bigint.h:365
0 0 None 8 88 voidfast_float::parse_mantissa (fast_float::bigint&,fast_float::parsed_number_string_t &,unsignedlong,unsignedlong&) call site: 00000 /src/fast_float/include/fast_float/digit_comparison.h:275
0 0 None 4 76 voidfast_float::parse_mantissa (fast_float::bigint&,fast_float::parsed_number_string_t &,unsignedlong,unsignedlong&) call site: 00000 /src/fast_float/include/fast_float/digit_comparison.h:310
0 0 None 0 2 fast_float::stackvec<(unsignedshort)62>::resize_unchecked(unsignedlong,unsignedlong) call site: 00000 /src/fast_float/include/fast_float/bigint.h:119
0 0 None 0 0 fast_float::stackvec<(unsignedshort)62>::try_push(unsignedlong) call site: 00000 /src/fast_float/include/fast_float/bigint.h:92
0 0 None 0 0 fast_float::stackvec<(unsignedshort)62>::try_extend(fast_float::span ) call site: 00000 /src/fast_float/include/fast_float/bigint.h:107
0 0 None 0 0 fast_float::stackvec<(unsignedshort)62>::try_resize(unsignedlong,unsignedlong) call site: 00000 /src/fast_float/include/fast_float/bigint.h:131
0 0 None 0 0 fast_float::bigint::shl_limbs(unsignedlong) call site: 00000 /src/fast_float/include/fast_float/bigint.h:511
0 0 None 0 0 fast_float::bigint::shl_limbs(unsignedlong) call site: 00000 /src/fast_float/include/fast_float/bigint.h:513
0 0 None 0 0 fast_float::bigint::hi64(bool&)const call site: 00000 /src/fast_float/include/fast_float/bigint.h:432
0 0 None 0 0 fast_float::bigint::ctlz()const call site: 00000 /src/fast_float/include/fast_float/bigint.h:544
0 0 None 0 0 fast_float::bigint::compare(fast_float::bigintconst&)const call site: 00000 /src/fast_float/include/fast_float/bigint.h:463

Runtime coverage analysis

Covered functions
112
Functions that are reachable but not covered
7
Reachable functions
151
Percentage of reachable functions covered
95.36%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/from_chars.cc 2
include/fast_float/parse_number.h 3
include/fast_float/float_common.h 19
include/fast_float/ascii_number.h 1
include/fast_float/digit_comparison.h 9
include/fast_float/bigint.h 32