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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
3 77 _ZN7simdutf22convert_latin1_to_utf8ITkNS_6detail23input_span_of_byte_likeENSt3__14spanIKhLm18446744073709551615EEETkNS1_24output_span_of_byte_likeERNS2_6vectorIcNS2_9allocatorIcEEEEEEmRKT_OT0_ call site: 00077 abort
1 36 simdutf::internal::available_implementation_list::begin() const call site: 00036 __cxa_begin_catch
1 69 simdutf::convert_latin1_to_utf8_safe(char const*, unsigned long, char*, unsigned long) call site: 00069 abort
1 101 simdutf::convert_utf16_to_utf8_safe(char16_t const*, unsigned long, char*, unsigned long) call site: 00101 abort
1 111 test_utf16_to_utf8(std::__1::span , unsigned long) call site: 00111 abort

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 void select_implementation<int>(int) [function] [call site] 00001
2 __cxa_guard_acquire [call site] 00002
2 select_implementation<int>(int)::{lambda()#1}::operator()() const [function] [call site] 00003
3 simdutf::get_available_implementations() [function] [call site] 00004
4 __cxa_guard_acquire [call site] 00005
4 simdutf::internal::available_implementation_list::available_implementation_list() [function] [call site] 00006
4 __cxa_guard_release [call site] 00007
4 __cxa_guard_abort [call site] 00008
3 simdutf::internal::available_implementation_list::begin() const [function] [call site] 00009
4 simdutf::internal::get_available_implementation_pointers() [function] [call site] 00010
5 __cxa_guard_acquire [call site] 00011
5 simdutf::internal::get_icelake_singleton() [function] [call site] 00012
6 __cxa_guard_acquire [call site] 00013
6 simdutf::icelake::implementation::implementation() [function] [call site] 00014
7 simdutf::implementation::implementation(char const*, char const*, unsigned int) [function] [call site] 00015
6 __cxa_guard_release [call site] 00016
6 __cxa_guard_abort [call site] 00017
5 simdutf::internal::get_haswell_singleton() [function] [call site] 00018
6 __cxa_guard_acquire [call site] 00019
6 simdutf::haswell::implementation::implementation() [function] [call site] 00020
6 __cxa_guard_release [call site] 00021
6 __cxa_guard_abort [call site] 00022
5 simdutf::internal::get_westmere_singleton() [function] [call site] 00023
6 __cxa_guard_acquire [call site] 00024
6 simdutf::westmere::implementation::implementation() [function] [call site] 00025
7 simdutf::implementation::implementation(char const*, char const*, unsigned int) [function] [call site] 00026
6 __cxa_guard_release [call site] 00027
6 __cxa_guard_abort [call site] 00028
5 simdutf::internal::get_fallback_singleton() [function] [call site] 00029
6 __cxa_guard_acquire [call site] 00030
6 simdutf::fallback::implementation::implementation() [function] [call site] 00031
6 __cxa_guard_release [call site] 00032
6 __cxa_guard_abort [call site] 00033
5 __cxa_guard_release [call site] 00034
5 __cxa_guard_abort [call site] 00035
4 __clang_call_terminate [call site] 00036
5 __cxa_begin_catch [call site] 00037
3 simdutf::internal::available_implementation_list::end() const [function] [call site] 00038
4 simdutf::internal::get_available_implementation_pointers() [function] [call site] 00039
4 __clang_call_terminate [call site] 00040
3 simdutf::implementation::supported_by_runtime_system() const [function] [call site] 00041
4 simdutf::internal::detect_supported_architectures() [function] [call site] 00042
5 simdutf::internal::cpuid(unsigned int*, unsigned int*, unsigned int*, unsigned int*) [function] [call site] 00043
5 simdutf::internal::xgetbv() [function] [call site] 00044
5 simdutf::internal::cpuid(unsigned int*, unsigned int*, unsigned int*, unsigned int*) [function] [call site] 00045
2 __cxa_atexit [call site] 00046
2 __cxa_guard_release [call site] 00047
2 __assert_fail [call site] 00048
2 __cxa_guard_abort [call site] 00049
2 simdutf::get_active_implementation() [function] [call site] 00050
3 __cxa_guard_acquire [call site] 00051
3 simdutf::internal::detect_best_supported_implementation_on_first_use::detect_best_supported_implementation_on_first_use() [function] [call site] 00052
4 simdutf::implementation::implementation(char const*, char const*, unsigned int) [function] [call site] 00053
3 __cxa_guard_release [call site] 00054
3 __cxa_guard_acquire [call site] 00055
3 simdutf::internal::atomic_ptr<simdutf::implementation const>::atomic_ptr(simdutf::implementation const*) [function] [call site] 00056
3 __cxa_guard_release [call site] 00057
3 __cxa_guard_abort [call site] 00058
2 simdutf::internal::atomic_ptr<simdutf::implementation const>::operator=(simdutf::implementation const*) [function] [call site] 00059
1 test_latin1_to_utf8(std::__1::span<unsigned char const, 18446744073709551615ul>, unsigned long) [function] [call site] 00060
2 _ZN7simdutf27convert_latin1_to_utf8_safeITkNS_6detail23input_span_of_byte_likeENSt3__14spanIKhLm18446744073709551615EEETkNS1_24output_span_of_byte_likeERNS2_6vectorIcNS2_9allocatorIcEEEEEEmRKT_OT0_ [function] [call site] 00061
3 simdutf::convert_latin1_to_utf8_safe(char const*, unsigned long, char*, unsigned long) [function] [call site] 00062
4 simdutf::convert_latin1_to_utf8(char const*, unsigned long, char*) [function] [call site] 00063
5 simdutf::get_default_implementation() [function] [call site] 00064
6 simdutf::get_active_implementation() [function] [call site] 00065
5 simdutf::internal::atomic_ptr<simdutf::implementation const>::operator->() [function] [call site] 00066
5 __clang_call_terminate [call site] 00067
4 simdutf::scalar::(anonymous namespace)::latin1_to_utf8::convert_safe(char const*, unsigned long, char*, unsigned long) [function] [call site] 00068
4 __clang_call_terminate [call site] 00069
2 abort [call site] 00070
2 _ZN7simdutf23utf8_length_from_latin1ITkNS_6detail23input_span_of_byte_likeENSt3__14spanIKhLm18446744073709551615EEEEEmRKT_ [function] [call site] 00071
3 simdutf::utf8_length_from_latin1(char const*, unsigned long) [function] [call site] 00072
4 simdutf::get_default_implementation() [function] [call site] 00073
4 simdutf::internal::atomic_ptr<simdutf::implementation const>::operator->() [function] [call site] 00074
4 __clang_call_terminate [call site] 00075
2 _ZN7simdutf22convert_latin1_to_utf8ITkNS_6detail23input_span_of_byte_likeENSt3__14spanIKhLm18446744073709551615EEETkNS1_24output_span_of_byte_likeERNS2_6vectorIcNS2_9allocatorIcEEEEEEmRKT_OT0_ [function] [call site] 00076
3 simdutf::convert_latin1_to_utf8(char const*, unsigned long, char*) [function] [call site] 00077
2 abort [call site] 00078
2 abort [call site] 00079
2 abort [call site] 00080
1 test_utf16_to_utf8(std::__1::span<char16_t const, 18446744073709551615ul>, unsigned long) [function] [call site] 00081
2 _ZN7simdutf26convert_utf16_to_utf8_safeITkNS_6detail24output_span_of_byte_likeERNSt3__16vectorIcNS2_9allocatorIcEEEEEEmNS2_4spanIKDsLm18446744073709551615EEEOT_ [function] [call site] 00082
3 simdutf::convert_utf16_to_utf8_safe(char16_t const*, unsigned long, char*, unsigned long) [function] [call site] 00083
4 simdutf::scalar::utf16::high_surrogate(char16_t) [function] [call site] 00084
4 simdutf::convert_utf16_to_utf8(char16_t const*, unsigned long, char*) [function] [call site] 00085
5 simdutf::convert_utf16le_to_utf8(char16_t const*, unsigned long, char*) [function] [call site] 00086
6 simdutf::get_default_implementation() [function] [call site] 00087
6 simdutf::internal::atomic_ptr<simdutf::implementation const>::operator->() [function] [call site] 00088
6 __clang_call_terminate [call site] 00089
4 _ZN7simdutf6scalar12_GLOBAL__N_113utf16_to_utf819convert_with_errorsILNS_10endiannessE0ELb1EPKDsPcQaasr7simdutf6detailE18indexes_into_utf16IT1_Esr7simdutf6detailE26index_assignable_from_charIT2_EEENS_11full_resultES8_mS9_m [function] [call site] 00090
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00091
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00092
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00093
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00094
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00095
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00096
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00097
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00098
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00099
5 simdutf::full_result::full_result(simdutf::error_code, unsigned long, unsigned long) [function] [call site] 00100
4 __clang_call_terminate [call site] 00101
2 abort [call site] 00102
2 simdutf::utf8_length_from_utf16(std::__1::span<char16_t const, 18446744073709551615ul>) [function] [call site] 00103
3 simdutf::utf8_length_from_utf16(char16_t const*, unsigned long) [function] [call site] 00104
4 simdutf::utf8_length_from_utf16le(char16_t const*, unsigned long) [function] [call site] 00105
5 simdutf::get_default_implementation() [function] [call site] 00106
5 simdutf::internal::atomic_ptr<simdutf::implementation const>::operator->() [function] [call site] 00107
5 __clang_call_terminate [call site] 00108
2 _ZN7simdutf21convert_utf16_to_utf8ITkNS_6detail24output_span_of_byte_likeERNSt3__16vectorIcNS2_9allocatorIcEEEEEEmNS2_4spanIKDsLm18446744073709551615EEEOT_ [function] [call site] 00109
3 simdutf::convert_utf16_to_utf8(char16_t const*, unsigned long, char*) [function] [call site] 00110
2 __assert_fail [call site] 00111
2 abort [call site] 00112