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

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
12 65 4 :

['std::__1::basic_string , std::__1::allocator >::~basic_string()', 'simdutf::internal::available_implementation_list::operator[](std::__1::basic_string , std::__1::allocator > const&) const', 'simdutf::internal::get_unsupported_singleton()', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc']

14 117 simdutf::internal::detect_best_supported_implementation_on_first_use::set_best()const call site: 00000 /src/simdutf/src/implementation.cpp:1314
2 8 15 :

['operator<<(std::__1::basic_ostream >&, simdutf::result const&)', 'std::__1::span ::begin[abi:ne180100]() const', 'std::__1::__wrap_iter ::operator*[abi:ne180100]() const', 'bool std::__1::operator!=[abi:ne180100] (std::__1::__wrap_iter const&, std::__1::__wrap_iter const&)', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char const*)', 'std::__1::__wrap_iter ::operator++[abi:ne180100]()', 'std::__1::basic_ostream >::operator<<(int)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::span ::end[abi:ne180100]() const', 'abort', 'std::__1::span ::operator[][abi:ne180100](unsigned long) const', 'std::__1::span ::size[abi:ne180100]() const', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char)', 'std::__1::vector >::at(unsigned long)', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] , std::__1::allocator >(std::__1::basic_ostream >&, std::__1::basic_string , std::__1::allocator > const&)']

2 8 validate_ascii_with_err(std::__1::span ) call site: 00000 /src/simdutf/fuzz/misc.cpp:82
2 2 8 :

['abort', 'std::__1::span ::operator[][abi:ne180100](unsigned long) const', 'std::__1::span ::size[abi:ne180100]() const', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char)', 'std::__1::basic_ostream >::operator<<(void const*)', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char const*)', 'std::__1::basic_ostream >::operator<<(int)', 'std::__1::vector >::at(unsigned long)']

2 2 autodetect(std::__1::span ) call site: 00000 /src/simdutf/fuzz/misc.cpp:16
2 2 14 :

['std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::span ::end[abi:ne180100]() const', 'std::__1::vector >::at(unsigned long)', 'abort', 'std::__1::span ::operator[][abi:ne180100](unsigned long) const', 'std::__1::span ::size[abi:ne180100]() const', 'std::__1::span ::begin[abi:ne180100]() const', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char)', 'std::__1::__wrap_iter ::operator*[abi:ne180100]() const', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] , std::__1::allocator >(std::__1::basic_ostream >&, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_ostream >::operator<<(int)', 'bool std::__1::operator!=[abi:ne180100] (std::__1::__wrap_iter const&, std::__1::__wrap_iter const&)', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char const*)', 'std::__1::__wrap_iter ::operator++[abi:ne180100]()']

2 2 detect(std::__1::span ) call site: 00000 /src/simdutf/fuzz/misc.cpp:33
2 2 14 :

['std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::span ::end[abi:ne180100]() const', 'std::__1::vector >::at(unsigned long)', 'abort', 'std::__1::span ::operator[][abi:ne180100](unsigned long) const', 'std::__1::span ::size[abi:ne180100]() const', 'std::__1::span ::begin[abi:ne180100]() const', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char)', 'std::__1::__wrap_iter ::operator*[abi:ne180100]() const', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] , std::__1::allocator >(std::__1::basic_ostream >&, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_ostream >::operator<<(int)', 'bool std::__1::operator!=[abi:ne180100] (std::__1::__wrap_iter const&, std::__1::__wrap_iter const&)', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char const*)', 'std::__1::__wrap_iter ::operator++[abi:ne180100]()']

2 2 validate_ascii(std::__1::span ) call site: 00000 /src/simdutf/fuzz/misc.cpp:57
2 2 14 :

['std::__1::__wrap_iter ::operator*[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::span ::end[abi:ne180100]() const', 'abort', 'std::__1::span ::operator[][abi:ne180100](unsigned long) const', 'std::__1::span ::size[abi:ne180100]() const', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::at(unsigned long)', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char)', 'std::__1::span ::begin[abi:ne180100]() const', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] , std::__1::allocator >(std::__1::basic_ostream >&, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::__wrap_iter ::operator++[abi:ne180100]()', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char const*)', 'std::__1::basic_ostream >::operator<<(int)', 'bool std::__1::operator!=[abi:ne180100] (std::__1::__wrap_iter const&, std::__1::__wrap_iter const&)']

2 2 utf16_endianess(std::__1::span ) call site: 00000 /src/simdutf/fuzz/misc.cpp:107
0 0 None 14 14 simdutf::internal::available_implementation_list::detect_best_supported()const call site: 00000 /src/simdutf/src/implementation.cpp:1295
0 0 None 0 0 simdutf::internal::detect_supported_architectures() call site: 00000 /src/simdutf/include/simdutf/internal/isadetection.h:247
0 0 None 0 0 simdutf::internal::detect_supported_architectures() call site: 00000 /src/simdutf/include/simdutf/internal/isadetection.h:254
0 0 None 0 0 simdutf::internal::detect_supported_architectures() call site: 00000 /src/simdutf/include/simdutf/internal/isadetection.h:270
0 0 None 0 0 simdutf::haswell::implementation::validate_utf16le(char16_tconst*,unsignedlong)const call site: 00000 /src/simdutf/src/haswell/implementation.cpp:304
0 0 None 0 0 simdutf::westmere::implementation::validate_utf16le(char16_tconst*,unsignedlong)const call site: 00000 /src/simdutf/src/westmere/implementation.cpp:338

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 autodetect(std::__1::span<char const, 18446744073709551615ul>) [function] [call site] 00001
2 get_supported_implementations() [function] [call site] 00002
3 __cxa_guard_acquire [call site] 00003
3 get_supported_implementations()::{lambda()#1}::operator()() const [function] [call site] 00004
4 simdutf::get_available_implementations() [function] [call site] 00005
5 __cxa_guard_acquire [call site] 00006
5 simdutf::internal::available_implementation_list::available_implementation_list() [function] [call site] 00007
5 __cxa_guard_release [call site] 00008
5 __cxa_guard_abort [call site] 00009
4 simdutf::internal::available_implementation_list::begin() const [function] [call site] 00010
5 simdutf::internal::get_available_implementation_pointers() [function] [call site] 00011
6 __cxa_guard_acquire [call site] 00012
6 simdutf::internal::get_icelake_singleton() [function] [call site] 00013
7 __cxa_guard_acquire [call site] 00014
7 simdutf::icelake::implementation::implementation() [function] [call site] 00015
8 simdutf::implementation::implementation(char const*, char const*, unsigned int) [function] [call site] 00016
7 __cxa_guard_release [call site] 00017
7 __cxa_guard_abort [call site] 00018
6 simdutf::internal::get_haswell_singleton() [function] [call site] 00019
7 __cxa_guard_acquire [call site] 00020
7 simdutf::haswell::implementation::implementation() [function] [call site] 00021
7 __cxa_guard_release [call site] 00022
7 __cxa_guard_abort [call site] 00023
6 simdutf::internal::get_westmere_singleton() [function] [call site] 00024
7 __cxa_guard_acquire [call site] 00025
7 simdutf::westmere::implementation::implementation() [function] [call site] 00026
8 simdutf::implementation::implementation(char const*, char const*, unsigned int) [function] [call site] 00027
7 __cxa_guard_release [call site] 00028
7 __cxa_guard_abort [call site] 00029
6 simdutf::internal::get_fallback_singleton() [function] [call site] 00030
7 __cxa_guard_acquire [call site] 00031
7 simdutf::fallback::implementation::implementation() [function] [call site] 00032
7 __cxa_guard_release [call site] 00033
7 __cxa_guard_abort [call site] 00034
6 __cxa_guard_release [call site] 00035
6 __cxa_guard_abort [call site] 00036
5 __clang_call_terminate [call site] 00037
6 __cxa_begin_catch [call site] 00038
4 simdutf::internal::available_implementation_list::end() const [function] [call site] 00039
5 simdutf::internal::get_available_implementation_pointers() [function] [call site] 00040
5 __clang_call_terminate [call site] 00041
4 simdutf::implementation::supported_by_runtime_system() const [function] [call site] 00042
5 simdutf::internal::detect_supported_architectures() [function] [call site] 00043
6 simdutf::internal::cpuid(unsigned int*, unsigned int*, unsigned int*, unsigned int*) [function] [call site] 00044
6 simdutf::internal::xgetbv() [function] [call site] 00045
6 simdutf::internal::cpuid(unsigned int*, unsigned int*, unsigned int*, unsigned int*) [function] [call site] 00046
4 simdutf::implementation::supported_by_runtime_system() const [function] [call site] 00047
3 __cxa_atexit [call site] 00048
3 __cxa_guard_release [call site] 00049
3 __cxa_guard_abort [call site] 00050
2 abort [call site] 00051
1 detect(std::__1::span<char const, 18446744073709551615ul>) [function] [call site] 00052
2 get_supported_implementations() [function] [call site] 00053
2 abort [call site] 00054
1 validate_ascii(std::__1::span<char const, 18446744073709551615ul>) [function] [call site] 00055
2 get_supported_implementations() [function] [call site] 00056
2 abort [call site] 00057
1 validate_ascii_with_err(std::__1::span<char const, 18446744073709551615ul>) [function] [call site] 00058
2 get_supported_implementations() [function] [call site] 00059
2 operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, simdutf::result const&) [function] [call site] 00060
3 _ZN6nameof11nameof_enumIN7simdutf10error_codeEEENSt3__19enable_ifIXsr3stdE9is_enum_vIu7__decayIT_EEENS3_17basic_string_viewIcNS3_11char_traitsIcEEEEE4typeES5_ [function] [call site] 00061
2 abort [call site] 00062
1 utf16_endianess(std::__1::span<char16_t const, 18446744073709551615ul>) [function] [call site] 00063
2 get_supported_implementations() [function] [call site] 00064
2 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > FNV1A_hash::as_str<std::__1::vector<char16_t, std::__1::allocator<char16_t> > >(std::__1::vector<char16_t, std::__1::allocator<char16_t> > const&) [function] [call site] 00065
3 _ZN10FNV1A_hash14fnv1ahash_implIDsQ11is_hashableIT_EEEmRKNSt3__16vectorIS1_NS2_9allocatorIS1_EEEE [function] [call site] 00066
4 _ZN10FNV1A_hash14fnv1ahash_implIKDsLm18446744073709551615EQaaaa11is_hashableIT_Entsr3stdE9is_same_vIS2_cEntsr3stdE9is_same_vIS2_hEEEmNSt3__14spanIS2_XT0_EEE [function] [call site] 00067
5 FNV1A_hash::fnv1ahash_impl(std::__1::span<unsigned char const, 18446744073709551615ul>) [function] [call site] 00068
3 __assert_fail [call site] 00069
3 __assert_fail [call site] 00070
2 abort [call site] 00071
1 simdutf::trim_partial_utf16le(char16_t const*, unsigned long) [function] [call site] 00072
2 unsigned long simdutf::scalar::(anonymous namespace)::utf16::trim_partial_utf16<(simdutf::endianness)0>(char16_t const*, unsigned long) [function] [call site] 00073
3 simdutf::match_system(simdutf::endianness) [function] [call site] 00074
3 simdutf::scalar::u16_swap_bytes(unsigned short) [function] [call site] 00075
1 __assert_fail [call site] 00076
1 simdutf::trim_partial_utf16be(char16_t const*, unsigned long) [function] [call site] 00077
2 unsigned long simdutf::scalar::(anonymous namespace)::utf16::trim_partial_utf16<(simdutf::endianness)1>(char16_t const*, unsigned long) [function] [call site] 00078
1 __assert_fail [call site] 00079
1 simdutf::trim_partial_utf8(char const*, unsigned long) [function] [call site] 00080
2 simdutf::scalar::(anonymous namespace)::utf8::trim_partial_utf8(char const*, unsigned long) [function] [call site] 00081
1 abort [call site] 00082
1 convert_latin1_to_utf8_safe(std::__1::span<char const, 18446744073709551615ul>, unsigned long) [function] [call site] 00083
2 simdutf::convert_latin1_to_utf8_safe(char const*, unsigned long, char*, unsigned long) [function] [call site] 00084
3 simdutf::convert_latin1_to_utf8(char const*, unsigned long, char*) [function] [call site] 00085
4 simdutf::get_default_implementation() [function] [call site] 00086
5 simdutf::get_active_implementation() [function] [call site] 00087
6 __cxa_guard_acquire [call site] 00088
6 simdutf::internal::detect_best_supported_implementation_on_first_use::detect_best_supported_implementation_on_first_use() [function] [call site] 00089
7 simdutf::implementation::implementation(char const*, char const*, unsigned int) [function] [call site] 00090
6 __cxa_guard_release [call site] 00091
6 __cxa_guard_acquire [call site] 00092
6 simdutf::internal::atomic_ptr<simdutf::implementation const>::atomic_ptr(simdutf::implementation const*) [function] [call site] 00093
6 __cxa_guard_release [call site] 00094
6 __cxa_guard_abort [call site] 00095
4 simdutf::internal::atomic_ptr<simdutf::implementation const>::operator->() [function] [call site] 00096
4 __clang_call_terminate [call site] 00097
3 simdutf::scalar::(anonymous namespace)::latin1_to_utf8::convert_safe(char const*, unsigned long, char*, unsigned long) [function] [call site] 00098
3 __clang_call_terminate [call site] 00099
2 simdutf::convert_latin1_to_utf8(char const*, unsigned long, char*) [function] [call site] 00100
2 __assert_fail [call site] 00101
2 __assert_fail [call site] 00102
2 __assert_fail [call site] 00103
2 __assert_fail [call site] 00104