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

Fuzzer details

Fuzzer: fuzz_asyoutypeformatter

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 1106 52.3%
gold [1:9] 294 13.9%
yellow [10:29] 13 0.61%
greenyellow [30:49] 5 0.23%
lawngreen 50+ 696 32.9%
All colors 2114 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
72 356 5 :

['google::protobuf::MessageLite::~MessageLite()', 'google::protobuf::RepeatedPtrField ::~RepeatedPtrField()', 'operator new(unsigned long)', 'i18n::phonenumbers::PhoneNumberDesc::PhoneNumberDesc(i18n::phonenumbers::PhoneNumberDesc const&)', 'operator delete(void*)']

72 356 i18n::phonenumbers::PhoneMetadata::PhoneMetadata(i18n::phonenumbers::PhoneMetadataconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc:1129
59 113 5 :

['i18n::phonenumbers::UnicodeText::Repr::Copy(char const*, int)', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [39])', 'i18n::phonenumbers::LOG(int)', 'i18n::phonenumbers::LoggerHandler::~LoggerHandler()', 'i18n::phonenumbers::ConvertToInterchangeValid(char*, int)']

59 113 i18n::phonenumbers::UnicodeText::PointToUTF8(charconst*,int) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc:273
0 610 1 :

['i18n::phonenumbers::PhoneMetadata::CopyFrom(i18n::phonenumbers::PhoneMetadata const&)']

2 612 i18n::phonenumbers::PhoneMetadata::operator=(i18n::phonenumbers::PhoneMetadata&&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h:557
0 117 1 :

['i18n::phonenumbers::UnicodeText::PointToUTF8(char const*, int)']

0 129 i18n::phonenumbers::UTF8ToUnicodeText(charconst*,int,bool) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h:438
0 8 2 :

['i18n::phonenumbers::UnicodeString::toUTF8String(std::__1::basic_string , std::__1::allocator >&) const', 'std::__1::basic_string , std::__1::allocator >::clear[abi:ne180100]()']

0 8 i18n::phonenumbers::AsYouTypeFormatter::InputAccruedNationalNumber(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.cc:584
0 0 None 10743 11783 i18n::phonenumbers::IcuRegExp::Replace(std::__1::basic_string ,std::__1::allocator >*,bool,std::__1::basic_string ,std::__1::allocator >const&)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc:193
0 0 None 9813 10042 i18n::phonenumbers::IcuRegExp::Consume(i18n::phonenumbers::RegExpInput*,bool,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc:135
0 0 None 9794 10288 i18n::phonenumbers::IcuRegExp::Match(std::__1::basic_string ,std::__1::allocator >const&,bool,std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc:170
0 0 None 1537 1645 i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil() call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:872
0 0 None 1537 1635 i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil() call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:884
0 0 None 72 5128 i18n::phonenumbers::PhoneMetadata::PhoneMetadata(i18n::phonenumbers::PhoneMetadataconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc:1049
0 0 None 72 4812 i18n::phonenumbers::PhoneMetadata::PhoneMetadata(i18n::phonenumbers::PhoneMetadataconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc:1054

Runtime coverage analysis

Covered functions
440
Functions that are reachable but not covered
1135
Reachable functions
1812
Percentage of reachable functions covered
37.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
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_asyoutypeformatter.cc 1
/src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc 24
/src/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h 4
/src/libphonenumber/cpp/src/phonenumbers/logger.h 5
/src/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h 109
/src/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc 1
/src/libphonenumber/cpp/src/phonenumbers/matcher_api.h 2
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h 1
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h 6
/src/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc 3
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h 4
/src/libphonenumber/cpp/src/phonenumbers/stringutil.cc 16
/usr/local/include/absl/strings/str_cat.h 10
/usr/local/include/absl/strings/string_view.h 15
/src/abseil-cpp/absl/strings/numbers.cc 7
/src/abseil-cpp/absl/strings/numbers.h 1
/src/abseil-cpp/absl/strings/str_cat.cc 7
/src/abseil-cpp/absl/strings/internal/resize_uninitialized.h 4
/src/libphonenumber/cpp/src/phonenumbers/encoding_utils.h 1
/src/libphonenumber/cpp/src/phonenumbers/utf/rune.c 4
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h 2
/usr/local/include/absl/container/node_hash_set.h 8
/usr/local/include/absl/container/internal/raw_hash_set.h 166
/usr/local/include/absl/container/internal/compressed_tuple.h 44
/usr/local/include/absl/utility/utility.h 9
/usr/local/include/absl/container/node_hash_map.h 16
/usr/local/include/absl/container/internal/raw_hash_map.h 4
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h 32
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc 14
/usr/local/include/google/protobuf/message_lite.h 4
/usr/local/include/google/protobuf/metadata_lite.h 6
/usr/local/include/google/protobuf/repeated_field.h 32
/usr/local/include/google/protobuf/generated_message_util.h 3
/src/protobuf/src/google/protobuf/generated_message_util.cc 5
/src/protobuf/src/google/protobuf/stubs/common.cc 7
/src/protobuf/src/google/protobuf/stubs/common.h 1
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/protobuf/src/google/protobuf/generated_message_util.h 1
/src/protobuf/src/google/protobuf/message_lite.cc 9
/src/protobuf/src/google/protobuf/stubs/mutex.h 5
/usr/local/include/google/protobuf/arenastring.h 9
/src/protobuf/src/google/protobuf/repeated_field.h 12
/usr/local/include/google/protobuf/arena.h 3
/src/protobuf/src/google/protobuf/arena.cc 13
/src/libphonenumber/cpp/src/phonenumbers/metadata.cc 2
/usr/local/include/google/protobuf/stubs/stringpiece.h 1
/src/protobuf/src/google/protobuf/message_lite.h 2
/src/protobuf/src/google/protobuf/io/coded_stream.h 1
/src/protobuf/src/google/protobuf/parse_context.h 4
/src/protobuf/src/google/protobuf/stubs/stringpiece.h 2
/usr/local/include/google/protobuf/parse_context.h 1
/src/libphonenumber/cpp/src/phonenumbers/default_logger.h 15
/src/libphonenumber/cpp/src/phonenumbers/region_code.h 2
/usr/local/include/absl/container/internal/hash_policy_traits.h 27
/usr/local/include/absl/container/internal/container_memory.h 36
/usr/local/include/absl/base/internal/prefetch.h 1
/usr/local/include/absl/hash/internal/hash.h 21
/usr/local/include/absl/numeric/bits.h 1
/usr/local/include/absl/container/internal/node_slot_policy.h 12
/src/abseil-cpp/absl/container/internal/raw_hash_set.h 4
/src/abseil-cpp/absl/container/internal/raw_hash_set.cc 3
/src/abseil-cpp/absl/numeric/bits.h 2
/usr/local/include/absl/container/internal/hashtablez_sampler.h 5
/usr/local/include/absl/memory/memory.h 20
/usr/local/include/absl/container/internal/hash_function_defaults.h 2
/src/abseil-cpp/absl/hash/internal/hash.cc 2
/src/abseil-cpp/absl/hash/internal/low_level_hash.cc 2
/usr/local/include/absl/base/internal/unaligned_access.h 2
/src/abseil-cpp/absl/numeric/int128.h 7
/src/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.cc 27
/src/libphonenumber/cpp/src/phonenumbers/unicodestring.h 13
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc 31
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h 13
/src/protobuf/src/google/protobuf/arenastring.cc 2
/usr/local/include/google/protobuf/arena_impl.h 3
/src/protobuf/src/google/protobuf/arena_impl.h 16
/src/protobuf/src/google/protobuf/arena.h 2
/src/protobuf/src/google/protobuf/arenastring.h 1
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.h 3
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc 2
/src/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h 1
/src/icu/source/common/uchar.cpp 1
/src/libphonenumber/cpp/src/phonenumbers/unicodestring.cc 6
/usr/local/include/absl/strings/numbers.h 2
/src/abseil-cpp/absl/strings/ascii.h 1
/src/abseil-cpp/absl/strings/str_replace.cc 2
/src/abseil-cpp/absl/strings/str_replace.h 3
/src/abseil-cpp/absl/strings/string_view.cc 1
/src/abseil-cpp/absl/strings/internal/memutil.cc 1
/src/abseil-cpp/absl/base/internal/throw_delegate.cc 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/abseil-cpp/absl/strings/str_cat.h 1

Fuzzer: fuzz_phone

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 1427 43.2%
gold [1:9] 312 9.46%
yellow [10:29] 48 1.45%
greenyellow [30:49] 17 0.51%
lawngreen 50+ 1494 45.3%
All colors 3298 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
72 356 5 :

['google::protobuf::MessageLite::~MessageLite()', 'google::protobuf::RepeatedPtrField ::~RepeatedPtrField()', 'operator new(unsigned long)', 'i18n::phonenumbers::PhoneNumberDesc::PhoneNumberDesc(i18n::phonenumbers::PhoneNumberDesc const&)', 'operator delete(void*)']

72 356 i18n::phonenumbers::PhoneMetadata::PhoneMetadata(i18n::phonenumbers::PhoneMetadataconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc:1129
6 6 1 :

['google::protobuf::internal::GenericSwap(google::protobuf::MessageLite*, google::protobuf::MessageLite*)']

6 6 i18n::phonenumbers::PhoneNumber::Swap(i18n::phonenumbers::PhoneNumber*) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.h:137
4 4 1 :

['i18n::phonenumbers::UnicodeText::Repr::clear()']

4 4 i18n::phonenumbers::UnicodeText::Repr::resize(int) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc:128
0 2386 16 :

['i18n::phonenumbers::StringHolder::StringHolder(std::__1::basic_string , std::__1::allocator > const&)', 'i18n::phonenumbers::RegionCode::GetUnknown()', 'i18n::phonenumbers::LOG(int)', 'i18n::phonenumbers::LoggerHandler::~LoggerHandler()', 'i18n::phonenumbers::StringHolder::StringHolder(char const*)', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', 'i18n::phonenumbers::PhoneNumberUtil::Parse(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&, i18n::phonenumbers::PhoneNumber*) const', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [31])', 'i18n::phonenumbers::StrCat(i18n::phonenumbers::StringHolder const&, i18n::phonenumbers::StringHolder const&, i18n::phonenumbers::StringHolder const&)', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [2])', 'i18n::phonenumbers::SimpleItoa(int)', 'i18n::phonenumbers::PhoneNumberDesc::example_number() const', 'i18n::phonenumbers::PhoneNumberDesc::has_example_number() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'i18n::phonenumbers::StringHolder::~StringHolder()', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (int const&)']

0 2390 i18n::phonenumbers::PhoneNumberUtil::GetExampleNumberForNonGeoEntity(int,i18n::phonenumbers::PhoneNumber*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:2122
0 610 1 :

['i18n::phonenumbers::PhoneMetadata::CopyFrom(i18n::phonenumbers::PhoneMetadata const&)']

2 612 i18n::phonenumbers::PhoneMetadata::operator=(i18n::phonenumbers::PhoneMetadata&&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h:557
0 151 2 :

['i18n::phonenumbers::PhoneNumber::_internal_extension() const', 'i18n::phonenumbers::PhoneNumber::_internal_set_extension(std::__1::basic_string , std::__1::allocator > const&)']

0 453 i18n::phonenumbers::PhoneNumber::MergeFrom(i18n::phonenumbers::PhoneNumberconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc:516
0 151 2 :

['i18n::phonenumbers::PhoneNumber::_internal_raw_input() const', 'i18n::phonenumbers::PhoneNumber::_internal_set_raw_input(std::__1::basic_string , std::__1::allocator > const&)']

0 302 i18n::phonenumbers::PhoneNumber::MergeFrom(i18n::phonenumbers::PhoneNumberconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc:519
0 151 2 :

['i18n::phonenumbers::PhoneNumber::_internal_preferred_domestic_carrier_code() const', 'i18n::phonenumbers::PhoneNumber::_internal_set_preferred_domestic_carrier_code(std::__1::basic_string , std::__1::allocator > const&)']

0 151 i18n::phonenumbers::PhoneNumber::MergeFrom(i18n::phonenumbers::PhoneNumberconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc:522
0 81 5 :

['i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [2])', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [31])', 'i18n::phonenumbers::LOG(int)', 'i18n::phonenumbers::LoggerHandler::~LoggerHandler()', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (int const&)']

0 81 i18n::phonenumbers::PhoneNumberUtil::GetExampleNumberForType(std::__1::basic_string ,std::__1::allocator >const&,i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType,i18n::phonenumbers::PhoneNumber*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:2052
0 59 4 :

['i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [46])', 'i18n::phonenumbers::LOG(int)', 'i18n::phonenumbers::LoggerHandler::~LoggerHandler()', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator > const&)']

0 1484 i18n::phonenumbers::PhoneNumberUtil::FormatInOriginalFormat(i18n::phonenumbers::PhoneNumberconst&,std::__1::basic_string ,std::__1::allocator >const&,std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:1540
0 12 1 :

['i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [55])']

0 53 i18n::phonenumbers::PhoneNumberUtil::ParseHelper(std::__1::basic_string ,std::__1::allocator >const&,std::__1::basic_string ,std::__1::allocator >const&,bool,bool,i18n::phonenumbers::PhoneNumber*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:2382
0 0 None 10749 11783 i18n::phonenumbers::IcuRegExp::Replace(std::__1::basic_string ,std::__1::allocator >*,bool,std::__1::basic_string ,std::__1::allocator >const&)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc:193

Runtime coverage analysis

Covered functions
599
Functions that are reachable but not covered
1412
Reachable functions
2470
Percentage of reachable functions covered
42.83%
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
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_phone.cc 3
/src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc 96
/src/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h 4
/src/libphonenumber/cpp/src/phonenumbers/logger.h 5
/src/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h 111
/src/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc 1
/src/libphonenumber/cpp/src/phonenumbers/matcher_api.h 2
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h 1
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h 10
/src/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc 3
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h 4
/src/libphonenumber/cpp/src/phonenumbers/stringutil.cc 25
/usr/local/include/absl/strings/str_cat.h 12
/usr/local/include/absl/strings/string_view.h 15
/src/abseil-cpp/absl/strings/numbers.cc 11
/src/abseil-cpp/absl/strings/numbers.h 1
/src/abseil-cpp/absl/strings/str_cat.cc 9
/src/abseil-cpp/absl/strings/internal/resize_uninitialized.h 4
/src/libphonenumber/cpp/src/phonenumbers/encoding_utils.h 1
/src/libphonenumber/cpp/src/phonenumbers/utf/rune.c 3
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h 2
/usr/local/include/absl/container/node_hash_set.h 8
/usr/local/include/absl/container/internal/raw_hash_set.h 180
/usr/local/include/absl/container/internal/compressed_tuple.h 44
/usr/local/include/absl/utility/utility.h 11
/usr/local/include/absl/container/node_hash_map.h 16
/usr/local/include/absl/container/internal/raw_hash_map.h 4
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h 98
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc 17
/usr/local/include/google/protobuf/message_lite.h 5
/usr/local/include/google/protobuf/metadata_lite.h 11
/usr/local/include/google/protobuf/repeated_field.h 47
/usr/local/include/google/protobuf/generated_message_util.h 3
/src/protobuf/src/google/protobuf/generated_message_util.cc 6
/src/protobuf/src/google/protobuf/stubs/common.cc 8
/src/protobuf/src/google/protobuf/stubs/common.h 1
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/protobuf/src/google/protobuf/generated_message_util.h 1
/src/protobuf/src/google/protobuf/message_lite.cc 9
/src/protobuf/src/google/protobuf/stubs/mutex.h 5
/usr/local/include/google/protobuf/arenastring.h 9
/src/protobuf/src/google/protobuf/repeated_field.h 34
/usr/local/include/google/protobuf/arena.h 6
/src/protobuf/src/google/protobuf/arena.cc 13
/src/libphonenumber/cpp/src/phonenumbers/metadata.cc 2
/usr/local/include/google/protobuf/stubs/stringpiece.h 1
/src/protobuf/src/google/protobuf/message_lite.h 2
/src/protobuf/src/google/protobuf/io/coded_stream.h 1
/src/protobuf/src/google/protobuf/parse_context.h 4
/src/protobuf/src/google/protobuf/stubs/stringpiece.h 2
/usr/local/include/google/protobuf/parse_context.h 1
/src/libphonenumber/cpp/src/phonenumbers/default_logger.h 62
/src/libphonenumber/cpp/src/phonenumbers/region_code.h 2
/usr/local/include/absl/container/internal/hash_policy_traits.h 27
/usr/local/include/absl/container/internal/container_memory.h 36
/usr/local/include/absl/base/internal/prefetch.h 1
/usr/local/include/absl/hash/internal/hash.h 21
/usr/local/include/absl/numeric/bits.h 1
/usr/local/include/absl/container/internal/node_slot_policy.h 12
/src/abseil-cpp/absl/container/internal/raw_hash_set.h 4
/src/abseil-cpp/absl/container/internal/raw_hash_set.cc 3
/src/abseil-cpp/absl/numeric/bits.h 2
/usr/local/include/absl/container/internal/hashtablez_sampler.h 5
/usr/local/include/absl/memory/memory.h 20
/usr/local/include/absl/container/internal/hash_function_defaults.h 2
/src/abseil-cpp/absl/hash/internal/hash.cc 2
/src/abseil-cpp/absl/hash/internal/low_level_hash.cc 2
/usr/local/include/absl/base/internal/unaligned_access.h 2
/src/abseil-cpp/absl/numeric/int128.h 7
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.h 51
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc 9
/usr/local/include/absl/types/optional.h 11
/usr/local/include/absl/types/internal/optional.h 15
/src/abseil-cpp/absl/types/bad_optional_access.cc 2
/src/abseil-cpp/absl/types/bad_optional_access.h 1
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc 20
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h 9
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.h 3
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc 2
/src/protobuf/src/google/protobuf/arenastring.cc 7
/usr/local/include/google/protobuf/arena_impl.h 3
/src/protobuf/src/google/protobuf/arena_impl.h 16
/src/protobuf/src/google/protobuf/arena.h 3
/src/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h 1
/src/icu/source/common/uchar.cpp 1
/usr/local/include/absl/strings/numbers.h 4
/src/abseil-cpp/absl/strings/ascii.h 1
/src/protobuf/src/google/protobuf/arenastring.h 1
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.cc 1
/usr/local/include/absl/strings/match.h 2
/src/protobuf/src/google/protobuf/repeated_field.cc 2
/src/abseil-cpp/absl/strings/str_replace.cc 2
/src/abseil-cpp/absl/strings/str_replace.h 3
/src/abseil-cpp/absl/strings/string_view.cc 1
/src/abseil-cpp/absl/strings/internal/memutil.cc 1
/src/abseil-cpp/absl/base/internal/throw_delegate.cc 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/abseil-cpp/absl/strings/str_cat.h 1

Fuzzer: fuzz_shortnumberinfo

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 1456 55.4%
gold [1:9] 275 10.4%
yellow [10:29] 40 1.52%
greenyellow [30:49] 18 0.68%
lawngreen 50+ 839 31.9%
All colors 2628 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
476 1039 11 :

['i18n::phonenumbers::PhoneNumberDesc::possible_length_local_only() const', 'i18n::phonenumbers::PhoneMetadata::general_desc() const', 'void std::__1::sort[abi:ne180100] (int*, int*)', 'google::protobuf::RepeatedField ::size() const', 'i18n::phonenumbers::(anonymous namespace)::TestNumberLength(std::__1::basic_string , std::__1::allocator > const&, i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'i18n::phonenumbers::(anonymous namespace)::GetNumberDescByType(i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'google::protobuf::RepeatedField ::operator=(google::protobuf::RepeatedField const&)', 'i18n::phonenumbers::(anonymous namespace)::DescHasPossibleNumberData(i18n::phonenumbers::PhoneNumberDesc const&)', 'google::protobuf::RepeatedField ::MergeFrom(google::protobuf::RepeatedField const&)', 'i18n::phonenumbers::PhoneNumberDesc::possible_length_size() const', 'i18n::phonenumbers::PhoneNumberDesc::possible_length() const']

794 1357 i18n::phonenumbers::(anonymousnamespace)::TestNumberLength(std::__1::basic_string ,std::__1::allocator >const&,i18n::phonenumbers::PhoneMetadataconst&,i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:419
6 6 1 :

['google::protobuf::internal::GenericSwap(google::protobuf::MessageLite*, google::protobuf::MessageLite*)']

6 6 i18n::phonenumbers::PhoneNumber::Swap(i18n::phonenumbers::PhoneNumber*) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.h:137
4 4 1 :

['i18n::phonenumbers::UnicodeText::Repr::clear()']

4 4 i18n::phonenumbers::UnicodeText::Repr::resize(int) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc:128
0 610 1 :

['i18n::phonenumbers::PhoneMetadata::CopyFrom(i18n::phonenumbers::PhoneMetadata const&)']

2 612 i18n::phonenumbers::PhoneMetadata::operator=(i18n::phonenumbers::PhoneMetadata&&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h:557
0 12 1 :

['i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [55])']

0 53 i18n::phonenumbers::PhoneNumberUtil::ParseHelper(std::__1::basic_string ,std::__1::allocator >const&,std::__1::basic_string ,std::__1::allocator >const&,bool,bool,i18n::phonenumbers::PhoneNumber*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:2382
0 0 None 10749 11783 i18n::phonenumbers::IcuRegExp::Replace(std::__1::basic_string ,std::__1::allocator >*,bool,std::__1::basic_string ,std::__1::allocator >const&)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc:193
0 0 None 9813 10042 i18n::phonenumbers::IcuRegExp::Consume(i18n::phonenumbers::RegExpInput*,bool,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*,std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc:135
0 0 None 9794 10288 i18n::phonenumbers::IcuRegExp::Match(std::__1::basic_string ,std::__1::allocator >const&,bool,std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc:170
0 0 None 1869 1931 i18n::phonenumbers::ShortNumberInfo::ShortNumberInfo() call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.cc:51
0 0 None 1537 1645 i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil() call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:872
0 0 None 1537 1635 i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil() call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:884
0 0 None 102 102 i18n::phonenumbers::(anonymousnamespace)::TestNumberLength(std::__1::basic_string ,std::__1::allocator >const&,i18n::phonenumbers::PhoneMetadataconst&,i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:452

Runtime coverage analysis

Covered functions
516
Functions that are reachable but not covered
1487
Reachable functions
2324
Percentage of reachable functions covered
36.02%
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
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_shortnumberinfo.cc 2
/src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc 42
/src/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h 4
/src/libphonenumber/cpp/src/phonenumbers/logger.h 5
/src/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h 139
/src/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc 1
/src/libphonenumber/cpp/src/phonenumbers/matcher_api.h 2
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h 1
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h 9
/src/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc 3
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h 4
/src/libphonenumber/cpp/src/phonenumbers/stringutil.cc 17
/usr/local/include/absl/strings/str_cat.h 11
/usr/local/include/absl/strings/string_view.h 13
/src/abseil-cpp/absl/strings/numbers.cc 11
/src/abseil-cpp/absl/strings/numbers.h 1
/src/abseil-cpp/absl/strings/str_cat.cc 6
/src/abseil-cpp/absl/strings/internal/resize_uninitialized.h 2
/src/libphonenumber/cpp/src/phonenumbers/encoding_utils.h 1
/src/libphonenumber/cpp/src/phonenumbers/utf/rune.c 3
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h 2
/usr/local/include/absl/container/node_hash_set.h 8
/usr/local/include/absl/container/internal/raw_hash_set.h 250
/usr/local/include/absl/container/internal/compressed_tuple.h 44
/usr/local/include/absl/utility/utility.h 11
/usr/local/include/absl/container/node_hash_map.h 16
/usr/local/include/absl/container/internal/raw_hash_map.h 6
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h 61
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc 11
/usr/local/include/google/protobuf/message_lite.h 4
/usr/local/include/google/protobuf/metadata_lite.h 9
/usr/local/include/google/protobuf/repeated_field.h 27
/usr/local/include/google/protobuf/generated_message_util.h 3
/src/protobuf/src/google/protobuf/generated_message_util.cc 6
/src/protobuf/src/google/protobuf/stubs/common.cc 8
/src/protobuf/src/google/protobuf/stubs/common.h 1
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/protobuf/src/google/protobuf/generated_message_util.h 1
/src/protobuf/src/google/protobuf/message_lite.cc 9
/src/protobuf/src/google/protobuf/stubs/mutex.h 5
/usr/local/include/google/protobuf/arenastring.h 9
/src/protobuf/src/google/protobuf/repeated_field.h 28
/usr/local/include/google/protobuf/arena.h 4
/src/protobuf/src/google/protobuf/arena.cc 11
/src/libphonenumber/cpp/src/phonenumbers/metadata.cc 2
/usr/local/include/google/protobuf/stubs/stringpiece.h 1
/src/protobuf/src/google/protobuf/message_lite.h 2
/src/protobuf/src/google/protobuf/io/coded_stream.h 1
/src/protobuf/src/google/protobuf/parse_context.h 4
/src/protobuf/src/google/protobuf/stubs/stringpiece.h 2
/usr/local/include/google/protobuf/parse_context.h 1
/src/libphonenumber/cpp/src/phonenumbers/default_logger.h 32
/src/libphonenumber/cpp/src/phonenumbers/region_code.h 2
/usr/local/include/absl/container/internal/hash_policy_traits.h 46
/usr/local/include/absl/container/internal/container_memory.h 54
/usr/local/include/absl/base/internal/prefetch.h 1
/usr/local/include/absl/hash/internal/hash.h 21
/usr/local/include/absl/numeric/bits.h 1
/usr/local/include/absl/container/internal/node_slot_policy.h 12
/src/abseil-cpp/absl/container/internal/raw_hash_set.h 4
/src/abseil-cpp/absl/container/internal/raw_hash_set.cc 3
/src/abseil-cpp/absl/numeric/bits.h 2
/usr/local/include/absl/container/internal/hashtablez_sampler.h 5
/usr/local/include/absl/memory/memory.h 26
/usr/local/include/absl/container/internal/hash_function_defaults.h 2
/src/abseil-cpp/absl/hash/internal/hash.cc 2
/src/abseil-cpp/absl/hash/internal/low_level_hash.cc 2
/usr/local/include/absl/base/internal/unaligned_access.h 2
/src/abseil-cpp/absl/numeric/int128.h 7
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.h 26
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc 7
/usr/local/include/absl/types/optional.h 11
/usr/local/include/absl/types/internal/optional.h 15
/src/abseil-cpp/absl/types/bad_optional_access.cc 2
/src/abseil-cpp/absl/types/bad_optional_access.h 1
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc 20
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h 9
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.h 3
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc 2
/src/protobuf/src/google/protobuf/arenastring.cc 4
/usr/local/include/google/protobuf/arena_impl.h 3
/src/protobuf/src/google/protobuf/arena_impl.h 16
/src/protobuf/src/google/protobuf/arena.h 2
/src/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h 1
/src/icu/source/common/uchar.cpp 1
/usr/local/include/absl/strings/numbers.h 4
/src/abseil-cpp/absl/strings/ascii.h 1
/src/protobuf/src/google/protobuf/arenastring.h 1
/src/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.cc 21
/usr/local/include/absl/container/flat_hash_map.h 10
/usr/local/include/absl/container/flat_hash_set.h 12
/src/libphonenumber/cpp/src/phonenumbers/short_metadata.cc 2

Fuzzer: fuzz_matcher

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 6273 79.0%
gold [1:9] 429 5.40%
yellow [10:29] 17 0.21%
greenyellow [30:49] 20 0.25%
lawngreen 50+ 1195 15.0%
All colors 7934 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
476 1039 11 :

['i18n::phonenumbers::PhoneNumberDesc::possible_length_local_only() const', 'i18n::phonenumbers::PhoneMetadata::general_desc() const', 'void std::__1::sort[abi:ne180100] (int*, int*)', 'google::protobuf::RepeatedField ::size() const', 'i18n::phonenumbers::(anonymous namespace)::TestNumberLength(std::__1::basic_string , std::__1::allocator > const&, i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'i18n::phonenumbers::(anonymous namespace)::GetNumberDescByType(i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'google::protobuf::RepeatedField ::operator=(google::protobuf::RepeatedField const&)', 'i18n::phonenumbers::(anonymous namespace)::DescHasPossibleNumberData(i18n::phonenumbers::PhoneNumberDesc const&)', 'google::protobuf::RepeatedField ::MergeFrom(google::protobuf::RepeatedField const&)', 'i18n::phonenumbers::PhoneNumberDesc::possible_length_size() const', 'i18n::phonenumbers::PhoneNumberDesc::possible_length() const']

794 1357 i18n::phonenumbers::(anonymousnamespace)::TestNumberLength(std::__1::basic_string ,std::__1::allocator >const&,i18n::phonenumbers::PhoneMetadataconst&,i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:419
72 356 5 :

['google::protobuf::MessageLite::~MessageLite()', 'google::protobuf::RepeatedPtrField ::~RepeatedPtrField()', 'operator new(unsigned long)', 'i18n::phonenumbers::PhoneNumberDesc::PhoneNumberDesc(i18n::phonenumbers::PhoneNumberDesc const&)', 'operator delete(void*)']

72 356 i18n::phonenumbers::PhoneMetadata::PhoneMetadata(i18n::phonenumbers::PhoneMetadataconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc:1129
40 94 7 :

['std::__1::basic_string , std::__1::allocator >::at(unsigned long)', 'i18n::phonenumbers::StringHolder::StringHolder(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'absl::lts_20220623::optional , std::__1::allocator > >::value() &', 'i18n::phonenumbers::StrAppend(std::__1::basic_string , std::__1::allocator >*, i18n::phonenumbers::StringHolder const&)', 'i18n::phonenumbers::StringHolder::~StringHolder()', 'std::__1::basic_string , std::__1::allocator >::substr[abi:ne180100](unsigned long, unsigned long) const']

62 116 i18n::phonenumbers::PhoneNumberUtil::BuildNationalNumberForParsing(std::__1::basic_string ,std::__1::allocator >const&,std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:2233
34 87 7 :

['i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [2])', 'i18n::phonenumbers::RegionCode::GetUnknown()', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (char const (&) [39])', 'i18n::phonenumbers::LoggerHandler::~LoggerHandler()', 'std::__1::basic_string , std::__1::allocator >::operator=[abi:ne180100](char const*)', 'i18n::phonenumbers::LoggerHandler& i18n::phonenumbers::LoggerHandler::operator<< (int const&)', 'i18n::phonenumbers::VLOG(int)']

34 87 i18n::phonenumbers::PhoneNumberUtil::GetRegionCodeForNumber(i18n::phonenumbers::PhoneNumberconst&,std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:1918
30 30 6 :

['_ZN4absl12lts_202206238optionalINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEC2IRA1_KcTnNS2_9enable_ifIXsr4absl11conjunctionINS0_8negationINS2_7is_sameINS0_10in_place_tENS2_5decayIT_E4typeEEEEENSF_INSG_IS9_SL_EEEENS2_14is_convertibleIOSJ_S8_EENS2_16is_constructibleIS8_JSR_EEEEE5valueEbE4typeELb0EEESR_', '_ZN4absl12lts_202206238optionalINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEC2IS8_TnNS2_9enable_ifIXsr4absl11conjunctionINS0_8negationINS2_7is_sameINS0_10in_place_tENS2_5decayIT_E4typeEEEEENSC_INSD_IS9_SI_EEEENS2_14is_convertibleIOSG_S8_EENS2_16is_constructibleIS8_JSO_EEEEE5valueEbE4typeELb0EEESO_', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::find(char, unsigned long) const', 'std::__1::basic_string , std::__1::allocator >::substr[abi:ne180100](unsigned long, unsigned long) const', 'std::__1::basic_string , std::__1::allocator >::length[abi:ne180100]() const']

30 30 i18n::phonenumbers::PhoneNumberUtil::ExtractPhoneContext(std::__1::basic_string ,std::__1::allocator >const&,unsignedlong)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:2178
18 18 1 :

['google::protobuf::internal::ArenaStringPtr::ClearNonDefaultToEmpty()']

152 152 i18n::phonenumbers::PhoneNumber::Clear() call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc:223
6 6 1 :

['google::protobuf::internal::GenericSwap(google::protobuf::MessageLite*, google::protobuf::MessageLite*)']

6 6 i18n::phonenumbers::PhoneNumber::Swap(i18n::phonenumbers::PhoneNumber*) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.h:137
4 4 1 :

['i18n::phonenumbers::UnicodeText::Repr::clear()']

4 4 i18n::phonenumbers::UnicodeText::Repr::resize(int) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc:128
0 2175 3 :

['i18n::phonenumbers::PhoneNumberUtil::ParseHelper(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&, bool, bool, i18n::phonenumbers::PhoneNumber*) const', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', 'i18n::phonenumbers::RegionCode::GetUnknown()']

0 2625 i18n::phonenumbers::PhoneNumberUtil::IsNumberMatchWithOneString(i18n::phonenumbers::PhoneNumberconst&,std::__1::basic_string ,std::__1::allocator >const&)const call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc:3252
0 610 1 :

['i18n::phonenumbers::PhoneMetadata::CopyFrom(i18n::phonenumbers::PhoneMetadata const&)']

2 612 i18n::phonenumbers::PhoneMetadata::operator=(i18n::phonenumbers::PhoneMetadata&&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h:557
0 151 2 :

['i18n::phonenumbers::PhoneNumber::_internal_raw_input() const', 'i18n::phonenumbers::PhoneNumber::_internal_set_raw_input(std::__1::basic_string , std::__1::allocator > const&)']

0 302 i18n::phonenumbers::PhoneNumber::MergeFrom(i18n::phonenumbers::PhoneNumberconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc:519
0 151 2 :

['i18n::phonenumbers::PhoneNumber::_internal_preferred_domestic_carrier_code() const', 'i18n::phonenumbers::PhoneNumber::_internal_set_preferred_domestic_carrier_code(std::__1::basic_string , std::__1::allocator > const&)']

0 151 i18n::phonenumbers::PhoneNumber::MergeFrom(i18n::phonenumbers::PhoneNumberconst&) call site: 00000 /src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc:522

Runtime coverage analysis

Covered functions
633
Functions that are reachable but not covered
3498
Reachable functions
4616
Percentage of reachable functions covered
24.22%
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
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_matcher.cc 2
/src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc 67
/src/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h 12
/src/libphonenumber/cpp/src/phonenumbers/logger.h 5
/src/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h 141
/src/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc 1
/src/libphonenumber/cpp/src/phonenumbers/matcher_api.h 2
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h 2
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h 13
/src/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc 3
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h 4
/src/libphonenumber/cpp/src/phonenumbers/stringutil.cc 27
/usr/local/include/absl/strings/str_cat.h 15
/usr/local/include/absl/strings/string_view.h 16
/src/abseil-cpp/absl/strings/numbers.cc 11
/src/abseil-cpp/absl/strings/numbers.h 1
/src/abseil-cpp/absl/strings/str_cat.cc 7
/src/abseil-cpp/absl/strings/internal/resize_uninitialized.h 4
/src/libphonenumber/cpp/src/phonenumbers/encoding_utils.h 3
/src/libphonenumber/cpp/src/phonenumbers/utf/rune.c 3
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h 2
/usr/local/include/absl/container/node_hash_set.h 8
/usr/local/include/absl/container/internal/raw_hash_set.h 166
/usr/local/include/absl/container/internal/compressed_tuple.h 44
/usr/local/include/absl/utility/utility.h 11
/usr/local/include/absl/container/node_hash_map.h 16
/usr/local/include/absl/container/internal/raw_hash_map.h 4
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h 75
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc 11
/usr/local/include/google/protobuf/message_lite.h 5
/usr/local/include/google/protobuf/metadata_lite.h 12
/usr/local/include/google/protobuf/repeated_field.h 42
/usr/local/include/google/protobuf/generated_message_util.h 3
/src/protobuf/src/google/protobuf/generated_message_util.cc 6
/src/protobuf/src/google/protobuf/stubs/common.cc 8
/src/protobuf/src/google/protobuf/stubs/common.h 1
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/protobuf/src/google/protobuf/generated_message_util.h 1
/src/protobuf/src/google/protobuf/message_lite.cc 9
/src/protobuf/src/google/protobuf/stubs/mutex.h 5
/usr/local/include/google/protobuf/arenastring.h 10
/src/protobuf/src/google/protobuf/repeated_field.h 31
/usr/local/include/google/protobuf/arena.h 4
/src/protobuf/src/google/protobuf/arena.cc 11
/src/libphonenumber/cpp/src/phonenumbers/metadata.cc 2
/usr/local/include/google/protobuf/stubs/stringpiece.h 1
/src/protobuf/src/google/protobuf/message_lite.h 2
/src/protobuf/src/google/protobuf/io/coded_stream.h 1
/src/protobuf/src/google/protobuf/parse_context.h 4
/src/protobuf/src/google/protobuf/stubs/stringpiece.h 2
/usr/local/include/google/protobuf/parse_context.h 1
/src/libphonenumber/cpp/src/phonenumbers/default_logger.h 62
/src/libphonenumber/cpp/src/phonenumbers/region_code.h 2
/usr/local/include/absl/container/internal/hash_policy_traits.h 27
/usr/local/include/absl/container/internal/container_memory.h 36
/usr/local/include/absl/base/internal/prefetch.h 1
/usr/local/include/absl/hash/internal/hash.h 21
/usr/local/include/absl/numeric/bits.h 1
/usr/local/include/absl/container/internal/node_slot_policy.h 12
/src/abseil-cpp/absl/container/internal/raw_hash_set.h 4
/src/abseil-cpp/absl/container/internal/raw_hash_set.cc 3
/src/abseil-cpp/absl/numeric/bits.h 2
/usr/local/include/absl/container/internal/hashtablez_sampler.h 5
/usr/local/include/absl/memory/memory.h 20
/usr/local/include/absl/container/internal/hash_function_defaults.h 2
/src/abseil-cpp/absl/hash/internal/hash.cc 2
/src/abseil-cpp/absl/hash/internal/low_level_hash.cc 2
/usr/local/include/absl/base/internal/unaligned_access.h 2
/src/abseil-cpp/absl/numeric/int128.h 7
/src/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.cc 24
/src/libphonenumber/cpp/src/phonenumbers/stringutil.h 1
/src/libphonenumber/cpp/src/phonenumbers/alternate_format.cc 2
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc 20
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h 9
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.h 3
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc 2
/src/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.h 1
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc 12
/src/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.cc 10
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.h 55
/usr/local/include/google/protobuf/arena_impl.h 3
/src/protobuf/src/google/protobuf/arena_impl.h 16
/src/protobuf/src/google/protobuf/arenastring.cc 5
/src/protobuf/src/google/protobuf/arena.h 2
/src/icu/source/common/uchar.cpp 9
/usr/local/include/absl/types/optional.h 11
/usr/local/include/absl/types/internal/optional.h 15
/src/abseil-cpp/absl/types/bad_optional_access.cc 2
/src/abseil-cpp/absl/types/bad_optional_access.h 1
/src/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h 1
/usr/local/include/absl/strings/numbers.h 4
/src/abseil-cpp/absl/strings/ascii.h 1
/src/protobuf/src/google/protobuf/arenastring.h 1
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.cc 1
/usr/local/include/absl/strings/match.h 2
/src/libphonenumber/cpp/src/phonenumbers/callback.h 5
/src/protobuf/src/google/protobuf/repeated_field.cc 1
/usr/local/include/absl/strings/internal/str_split_internal.h 13
/usr/local/include/absl/strings/str_split.h 3
/src/abseil-cpp/absl/strings/str_split.cc 1
/src/abseil-cpp/absl/strings/string_view.cc 1
/src/abseil-cpp/absl/base/internal/throw_delegate.cc 2
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc 3
/usr/include/unicode/stringpiece.h 1
/src/icu/source/common/unistr.cpp 44
/usr/include/unicode/unistr.h 4
/usr/include/unicode/rep.h 1
/usr/include/unicode/uobject.h 1
/src/icu/source/i18n/../common/unicode/unistr.h 9
/src/icu/source/common/./unicode/stringpiece.h 4
/src/icu/source/common/./unicode/unistr.h 31
/src/icu/source/common/./umutex.h 14
/src/icu/source/common/cmemory.cpp 3
/src/icu/source/common/ustrtrns.cpp 4
/src/icu/source/common/./unicode/utypes.h 2
/src/icu/source/common/utf_impl.cpp 4
/src/icu/source/common/ustring.cpp 14
/src/icu/source/common/uobject.cpp 6
/src/icu/source/i18n/repattrn.cpp 6
/src/icu/source/i18n/../common/unicode/utypes.h 2
/src/icu/source/common/uvectr64.cpp 6
/src/icu/source/common/umath.cpp 1
/src/icu/source/common/uvectr32.cpp 7
/src/icu/source/common/uvector.cpp 21
/src/icu/source/common/uniset.cpp 60
/src/icu/source/common/./unicode/unifilt.h 2
/src/icu/source/common/./unicode/unifunct.h 2
/src/icu/source/common/./unicode/unimatch.h 2
/src/icu/source/i18n/./regeximp.h 3
/src/icu/source/i18n/../common/uvector.h 7
/src/icu/source/common/unisetspan.cpp 30
/src/icu/source/common/unifilt.cpp 2
/src/icu/source/common/unifunct.cpp 1
/src/icu/source/common/utext.cpp 13
/src/icu/source/common/uhash.cpp 26
/src/icu/source/i18n/regexcmp.cpp 36
/src/icu/source/common/ustack.cpp 4
/src/icu/source/i18n/regexst.cpp 6
/src/icu/source/common/umutex.cpp 10
/src/icu/source/common/ucln_cmn.cpp 2
/src/icu/source/common/./mutex.h 2
/src/icu/source/i18n/ucln_in.cpp 1
/src/icu/source/common/./unicode/char16ptr.h 4
/src/icu/source/common/uniset_props.cpp 21
/src/icu/source/common/./unicode/parsepos.h 3
/src/icu/source/common/./unicode/uniset.h 5
/src/icu/source/common/ruleiter.cpp 10
/src/icu/source/common/patternprops.cpp 2
/src/icu/source/common/util.cpp 3
/src/icu/source/common/uinvchar.cpp 4
/src/icu/source/common/./charstr.h 12
/src/icu/source/i18n/../common/cmemory.h 8
/src/icu/source/common/charstr.cpp 7
/src/icu/source/common/propname.cpp 9
/src/icu/source/common/./unicode/bytestrie.h 7
/src/icu/source/common/cstring.cpp 9
/src/icu/source/common/bytestrie.cpp 6
/src/icu/source/common/characterproperties.cpp 6
/src/icu/source/common/uprops.cpp 8
/src/icu/source/i18n/../common/unicode/localpointer.h 8
/src/icu/source/common/./unicode/localpointer.h 30
/src/icu/source/common/utrie2.cpp 3
/src/icu/source/common/normalizer2.cpp 12
/src/icu/source/common/./normalizer2impl.h 14
/src/icu/source/common/normalizer2impl.cpp 12
/src/icu/source/common/./norm2allmodes.h 5
/src/icu/source/common/./unicode/normalizer2.h 1
/src/icu/source/common/ucptrie.cpp 8
/src/icu/source/common/ucase.cpp 21
/src/icu/source/common/loadednormalizer2impl.cpp 10
/src/icu/source/common/udata.cpp 22
/src/icu/source/common/./restrace.h 5
/src/icu/source/common/stringpiece.cpp 1
/src/icu/source/common/putil.cpp 12
/src/icu/source/common/umapfile.cpp 2
/src/icu/source/common/udatamem.cpp 8
/src/icu/source/common/ucmndata.cpp 2
/src/icu/source/common/umutablecptrie.cpp 55
/src/icu/source/common/./uvector.h 4
/src/icu/source/common/ubidi_props.cpp 2
/src/icu/source/common/unames.cpp 17
/src/icu/source/common/./uprops.h 1
/src/icu/source/common/bmpset.cpp 10
/src/icu/source/common/./bmpset.h 1
/src/icu/source/common/./unisetspan.h 3
/src/icu/source/i18n/../common/unicode/uobject.h 1
/src/icu/source/common/parsepos.cpp 1
/src/icu/source/common/./ruleiter.h 1
/src/icu/source/i18n/regextxt.cpp 2
/src/icu/source/i18n/../common/uvectr64.h 6
/src/icu/source/i18n/../common/uvectr32.h 2
/src/icu/source/common/unistr_case.cpp 3
/src/icu/source/common/./unicode/edits.h 10
/src/icu/source/common/edits.cpp 12
/src/icu/source/common/ustrcase.cpp 17
/src/icu/source/common/./uvectr32.h 4
/src/icu/source/common/uniset_closure.cpp 5
/src/icu/source/i18n/../common/unicode/char16ptr.h 1
/src/icu/source/common/locid.cpp 15
/src/icu/source/common/uloc.cpp 22
/src/icu/source/common/uloc_tag.cpp 37
/src/icu/source/common/bytestream.cpp 3
/usr/include/unicode/bytestream.h 1
/src/icu/source/common/./cmemory.h 60
/src/icu/source/common/uloc_keytype.cpp 10
/src/icu/source/common/./uhash.h 3
/src/icu/source/common/uresbund.cpp 43
/src/icu/source/common/./unicode/locid.h 1
/src/icu/source/common/uarrsort.cpp 7
/src/icu/source/common/uresdata.cpp 15
/src/icu/source/common/./unicode/ures.h 4
/src/icu/source/common/./uresdata.h 1
/src/icu/source/common/./unicode/bytestream.h 2
/src/icu/source/common/brkiter.cpp 13
/src/icu/source/common/servls.cpp 3
/src/icu/source/common/serv.cpp 5
/src/icu/source/common/servnotf.cpp 2
/src/icu/source/common/servrbf.cpp 1
/src/icu/source/common/servlkf.cpp 2
/src/icu/source/common/./serv.h 1
/src/icu/source/common/locutil.cpp 1
/src/icu/source/common/./locbased.h 1
/src/icu/source/common/locbased.cpp 1
/src/icu/source/common/rbbi.cpp 2
/src/icu/source/common/schriter.cpp 2
/src/icu/source/common/uchriter.cpp 2
/src/icu/source/common/chariter.cpp 4
/src/icu/source/common/rbbi_cache.cpp 3
/src/icu/source/common/rbbidata.cpp 4
/src/icu/source/common/filteredbrk.cpp 6
/src/icu/source/common/unistr_case_locale.cpp 2
/src/icu/source/common/ustrcase_locale.cpp 1
/src/icu/source/common/unistr_titlecase_brkiter.cpp 2
/src/icu/source/common/ustr_titlecase_brkiter.cpp 2
/usr/include/unicode/utypes.h 1

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
icu_66::RuleBasedBreakIterator::RuleBasedBreakIterator(icu_66::UnicodeStringconst&,UParseError&,UErrorCode&) /src/icu/source/common/rbbi.cpp 4 ['N/A', 'N/A', 'N/A', 'N/A'] 33 0 134 23 20 1474 0 5887 1490
i18n::phonenumbers::IcuRegExp::Replace(std::__1::basic_string ,std::__1::allocator >*,bool,std::__1::basic_string ,std::__1::allocator >const&)const /src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc 4 ['N/A', 'N/A', 'bool', 'N/A'] 36 0 252 51 41 1176 0 5404 1282
google::protobuf::internal::ExtensionSet::ParseMessageSetItem(charconst*,google::protobuf::MessageLiteconst*,google::protobuf::internal::InternalMetadata*,google::protobuf::internal::ParseContext*) /src/protobuf/src/google/protobuf/extension_set.cc 5 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 23 0 32 3 2 763 0 1501 1239

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
44.0%
3345 / 7663
Cyclomatic complexity statically reachable by fuzzers
50.0%
21818 / 43927

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_asyoutypeformatter.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneMetadata::set_international_prefix(char const*)', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::GlobalReplaceSubstring(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator >*)', 'i18n::phonenumbers::PhoneMetadataCollection::SharedCtor()', 'void absl::lts_20220623::container_internal::hash_policy_traits, std::__1::allocator > >, void>::construct, std::__1::allocator > >, std::__1::basic_string, std::__1::allocator > const&>(std::__1::allocator, std::__1::allocator > >*, std::__1::basic_string, std::__1::allocator >**, std::__1::basic_string, std::__1::allocator > const&)', 'i18n::phonenumbers::(anonymous namespace)::LoadCompiledInMetadata(i18n::phonenumbers::PhoneMetadataCollection*)', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'void i18n::phonenumbers::GenericAtoi(std::__1::basic_string, std::__1::allocator > const&, int*)']

/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_phone.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumber::_internal_set_raw_input(std::__1::basic_string, std::__1::allocator > const&)', 'i18n::phonenumbers::(anonymous namespace)::TestNumberLength(std::__1::basic_string, std::__1::allocator > const&, i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'i18n::phonenumbers::PhoneNumberUtil::FormatByPattern(i18n::phonenumbers::PhoneNumber const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberFormat, google::protobuf::RepeatedPtrField const&, std::__1::basic_string, std::__1::allocator >*) const', 'i18n::phonenumbers::PhoneMetadataCollection::SharedCtor()', 'i18n::phonenumbers::(anonymous namespace)::LoadCompiledInMetadata(i18n::phonenumbers::PhoneMetadataCollection*)', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'void i18n::phonenumbers::GenericAtoi(std::__1::basic_string, std::__1::allocator > const&, int*)']

/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_shortnumberinfo.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::ShortNumberInfo::ShortNumberInfo()', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::ShortNumberInfo::ShortNumberInfo()', 'i18n::phonenumbers::PhoneNumber::_internal_set_raw_input(std::__1::basic_string, std::__1::allocator > const&)', 'i18n::phonenumbers::(anonymous namespace)::TestNumberLength(std::__1::basic_string, std::__1::allocator > const&, i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'i18n::phonenumbers::PhoneMetadataCollection::SharedCtor()', 'i18n::phonenumbers::(anonymous namespace)::TestNumberLength(std::__1::basic_string, std::__1::allocator > const&, i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'i18n::phonenumbers::(anonymous namespace)::LoadCompiledInMetadata(i18n::phonenumbers::PhoneMetadataCollection*)']

/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_matcher.cc

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['i18n::phonenumbers::IcuRegExp::IcuRegExp(std::__1::basic_string, std::__1::allocator > const&)', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumberUtil::PhoneNumberUtil()', 'i18n::phonenumbers::PhoneNumber::PhoneNumber(i18n::phonenumbers::PhoneNumber const&)', 'i18n::phonenumbers::(anonymous namespace)::TestNumberLength(std::__1::basic_string, std::__1::allocator > const&, i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)', 'i18n::phonenumbers::(anonymous namespace)::Utf8StringToUnicodeString(std::__1::basic_string, std::__1::allocator > const&)', 'i18n::phonenumbers::PhoneMetadataCollection::SharedCtor()', 'i18n::phonenumbers::SplitStringUsing(std::__1::basic_string, std::__1::allocator > const&, char, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > >*)', 'i18n::phonenumbers::(anonymous namespace)::TestNumberLength(std::__1::basic_string, std::__1::allocator > const&, i18n::phonenumbers::PhoneMetadata const&, i18n::phonenumbers::PhoneNumberUtil::PhoneNumberType)']

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/abseil-cpp/absl/strings/charconv.h [] []
/src/abseil-cpp/absl/base/internal/atomic_hook.h [] []
/src/protobuf/src/google/protobuf/wire_format_lite.h [] []
/src/icu/source/common/./unicode/utext.h [] []
/src/icu/source/common/./unicode/unimatch.h ['fuzz_matcher'] []
/src/icu/source/common/./uprops.h ['fuzz_matcher'] []
/src/icu/source/common/ruleiter.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/common.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/dictbe.cpp [] []
/src/icu/source/i18n/../common/unicode/unistr.h ['fuzz_matcher'] []
/src/icu/source/common/./unicode/umutablecptrie.h [] []
/usr/include/unicode/uobject.h ['fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/utrie2_builder.cpp [] []
/src/protobuf/src/google/protobuf/io/coded_stream.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/abseil-cpp/absl/strings/internal/charconv_bigint.h [] []
/src/icu/source/i18n/../common/unicode/uobject.h ['fuzz_matcher'] []
/src/icu/source/common/uvectr64.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/arena.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/bytesinkutil.cpp [] []
/src/abseil-cpp/absl/types/bad_optional_access.cc ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/servls.cpp ['fuzz_matcher'] ['fuzz_matcher']
/usr/local/include/absl/container/node_hash_map.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/usr/local/bin/../include/c++/v1/new [] []
/src/icu/source/common/ustrcase.cpp ['fuzz_matcher'] []
/src/icu/source/common/rbbi.cpp ['fuzz_matcher'] ['fuzz_matcher']
/usr/local/include/google/protobuf/repeated_field.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/loclikely.cpp [] []
/src/icu/source/common/./charstr.h ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h [] []
/src/protobuf/src/google/protobuf/stubs/stringprintf.cc [] []
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.h ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/io/zero_copy_stream.cc [] []
/usr/local/include/absl/container/internal/compressed_tuple.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/./serv.h ['fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/alternate_format.cc ['fuzz_matcher'] ['fuzz_matcher']
/src/abseil-cpp/absl/hash/internal/hash.h [] []
/src/abseil-cpp/absl/types/bad_optional_access.h ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/abseil-cpp/absl/hash/internal/low_level_hash.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/usr/local/include/absl/numeric/bits.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/usr/local/include/absl/container/internal/hash_function_defaults.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/int128.h [] []
/src/protobuf/src/google/protobuf/parse_context.cc [] []
/src/icu/source/common/utrie_swap.cpp [] []
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./uvectr32.h ['fuzz_matcher'] []
/usr/include/x86_64-linux-gnu/bits/byteswap.h [] []
/src/icu/source/common/udataswp.cpp [] []
/src/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./rbbi_cache.h [] []
/src/abseil-cpp/absl/strings/str_cat.h ['fuzz_asyoutypeformatter', 'fuzz_phone'] []
/src/abseil-cpp/absl/strings/internal/charconv_bigint.cc [] []
/src/icu/source/common/serv.cpp ['fuzz_matcher'] ['fuzz_matcher']
/usr/local/include/absl/container/flat_hash_map.h ['fuzz_shortnumberinfo'] []
/src/protobuf/src/google/protobuf/extension_set_inl.h [] []
/src/icu/source/common/dictionarydata.cpp [] []
/src/protobuf/src/google/protobuf/implicit_weak_message.h [] []
/usr/local/include/google/protobuf/stubs/port.h [] []
/usr/local/include/absl/container/internal/node_slot_policy.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/implicit_weak_message.cc [] []
/src/libphonenumber/cpp/src/phonenumbers/unicodestring.h ['fuzz_asyoutypeformatter'] ['fuzz_asyoutypeformatter']
/src/icu/source/common/./bmpset.h ['fuzz_matcher'] []
/usr/local/include/google/protobuf/arenastring.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/abseil-cpp/absl/strings/internal/charconv_parse.cc [] []
/src/icu/source/common/rbbiscan.cpp [] []
/usr/local/include/google/protobuf/has_bits.h [] []
/src/icu/source/common/resbund.cpp [] []
/src/protobuf/src/google/protobuf/stubs/strutil.h [] []
/src/icu/source/common/unifilt.cpp ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/numbers.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.cc ['fuzz_matcher'] ['fuzz_matcher']
/src/icu/source/common/uhash_us.cpp [] []
/src/icu/source/common/brkiter.cpp ['fuzz_matcher'] []
/src/icu/source/common/locavailable.cpp [] []
/src/icu/source/i18n/rematch.cpp [] []
/src/libphonenumber/cpp/src/phonenumbers/encoding_utils.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/characterproperties.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/generated_message_util.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/usr/include/unicode/bytestream.h ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/once.h [] []
/src/icu/source/common/./uresdata.h ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/structurally_valid.cc [] []
/src/libphonenumber/cpp/src/phonenumbers/logger.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/utrace.cpp [] []
/src/icu/source/common/./unicode/unifilt.h ['fuzz_matcher'] []
/src/icu/source/common/./uresimp.h [] []
/src/icu/source/common/./unicode/rep.h [] []
/src/libphonenumber/cpp/src/phonenumbers/callback.h ['fuzz_matcher'] ['fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.cc ['fuzz_shortnumberinfo'] ['fuzz_shortnumberinfo']
/src/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.h ['fuzz_matcher'] ['fuzz_matcher']
/src/abseil-cpp/absl/strings/str_replace.cc ['fuzz_asyoutypeformatter', 'fuzz_phone'] ['fuzz_asyoutypeformatter', 'fuzz_phone']
/src/protobuf/src/google/protobuf/repeated_field.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/i18n/../common/uvectr32.h ['fuzz_matcher'] []
/src/icu/source/i18n/repattrn.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/icu/source/common/./unicode/utypes.h ['fuzz_matcher'] []
/usr/local/include/google/protobuf/wire_format_lite.h [] []
/src/icu/source/common/errorcode.cpp [] []
/src/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.h [] []
/src/icu/source/common/servrbf.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/icu/source/common/locbased.cpp ['fuzz_matcher'] []
/src/abseil-cpp/absl/base/internal/raw_logging.cc [] []
/src/protobuf/src/google/protobuf/stubs/port.h [] []
/src/icu/source/common/./uvector.h ['fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/stringutil.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/usr/include/unicode/rep.h ['fuzz_matcher'] []
/src/icu/source/i18n/../common/unicode/char16ptr.h ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/str_split.cc ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/repeated_field.cc ['fuzz_phone', 'fuzz_matcher'] []
/src/abseil-cpp/absl/strings/ascii.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/abseil-cpp/absl/strings/str_replace.h ['fuzz_asyoutypeformatter', 'fuzz_phone'] ['fuzz_asyoutypeformatter', 'fuzz_phone']
/usr/local/include/absl/container/internal/hash_policy_traits.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./mutex.h ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/common.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/uinvchar.cpp ['fuzz_matcher'] []
/src/icu/source/common/uprops.cpp ['fuzz_matcher'] []
/src/icu/source/common/uvectr32.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/ucharstrie.h [] []
/usr/local/include/absl/strings/str_split.h ['fuzz_matcher'] []
/src/icu/source/common/uhash.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/uniset.h ['fuzz_matcher'] []
/src/icu/source/common/ucptrie.cpp ['fuzz_matcher'] []
/usr/local/bin/../include/c++/v1/sstream [] []
/src/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc [] []
/src/abseil-cpp/absl/base/internal/errno_saver.h [] []
/src/icu/source/common/./unicode/bytestream.h ['fuzz_matcher'] []
/src/icu/source/common/stringpiece.cpp ['fuzz_matcher'] []
/src/icu/source/common/./cpputils.h [] []
/src/icu/source/common/schriter.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/abseil-cpp/absl/base/internal/endian.h [] []
/src/icu/source/i18n/./regeximp.h ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/internal/charconv_parse.h [] []
/src/icu/source/common/ubidi_props.cpp ['fuzz_matcher'] []
/usr/local/include/google/protobuf/arena.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./unicode/errorcode.h [] []
/src/protobuf/src/google/protobuf/stubs/casts.h [] []
/src/protobuf/src/google/protobuf/stubs/stringpiece.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/usr/local/include/absl/utility/utility.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/./unicode/ucharstriebuilder.h [] []
/src/icu/source/common/uchar.cpp ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/unicodestring.cc ['fuzz_asyoutypeformatter'] ['fuzz_asyoutypeformatter']
/src/protobuf/src/google/protobuf/extension_set.cc [] []
/src/icu/source/common/./unicode/edits.h ['fuzz_matcher'] []
/src/abseil-cpp/absl/base/internal/throw_delegate.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_matcher']
/src/icu/source/common/parsepos.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/map_util.h [] []
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/ucln_cmn.cpp ['fuzz_matcher'] []
/src/icu/source/common/normalizer2.cpp ['fuzz_matcher'] []
/src/icu/source/common/./bytesinkutil.h [] []
/src/icu/source/common/uloc_tag.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/io/zero_copy_stream.h [] []
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/extension_set.h [] []
/src/icu/source/common/locid.cpp ['fuzz_matcher'] []
/src/icu/source/common/uresdata.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/arena_impl.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/stringtriebuilder.cpp [] []
/src/abseil-cpp/absl/strings/charconv.cc [] []
/usr/local/bin/../include/c++/v1/__exception/exception.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/unifunct.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/stringpiece.h ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/ascii.cc [] []
/src/icu/source/common/uscript_props.cpp [] []
/src/icu/source/common/unisetspan.cpp ['fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.cc ['fuzz_phone', 'fuzz_matcher'] ['fuzz_phone', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/arenastring.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/abseil-cpp/absl/container/internal/raw_hash_set.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./unicode/normalizer2.h ['fuzz_matcher'] []
/src/icu/source/i18n/../common/uvectr64.h ['fuzz_matcher'] []
/src/icu/source/common/servlk.cpp [] []
/src/protobuf/src/google/protobuf/io/coded_stream.cc [] []
/src/libphonenumber/cpp/src/phonenumbers/phonemetadata.pb.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/message_lite.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/uvector.cpp ['fuzz_matcher'] []
/src/icu/source/common/patternprops.cpp ['fuzz_matcher'] []
/src/icu/source/common/./cmemory.h ['fuzz_matcher'] []
/src/icu/source/i18n/regextxt.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/message_lite.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/stringutil.h ['fuzz_matcher'] ['fuzz_matcher']
/src/icu/source/common/ucase.cpp ['fuzz_matcher'] []
/src/icu/source/common/uresbund.cpp ['fuzz_matcher'] []
/usr/include/unicode/stringpiece.h ['fuzz_matcher'] []
/src/icu/source/common/rbbisetb.cpp [] []
/src/icu/source/common/servnotf.cpp ['fuzz_matcher'] []
/src/icu/source/common/./ucasemap_imp.h [] []
/src/icu/source/common/umapfile.cpp ['fuzz_matcher'] []
/src/icu/source/common/charstr.cpp ['fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/metadata.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/usr/local/include/absl/container/flat_hash_set.h ['fuzz_shortnumberinfo'] ['fuzz_shortnumberinfo']
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/udatamem.cpp ['fuzz_matcher'] []
/src/icu/source/common/locutil.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/uobject.cpp ['fuzz_matcher'] []
/src/icu/source/common/bmpset.cpp ['fuzz_matcher'] []
/src/icu/source/common/appendable.cpp [] []
/src/icu/source/common/loadednormalizer2impl.cpp ['fuzz_matcher'] []
/src/icu/source/common/ucharstriebuilder.cpp [] []
/usr/local/include/absl/strings/internal/str_split_internal.h ['fuzz_matcher'] ['fuzz_matcher']
/src/icu/source/i18n/../common/uvector.h ['fuzz_matcher'] []
/src/icu/source/i18n/regexcmp.cpp ['fuzz_matcher'] []
/src/icu/source/common/rbbistbl.cpp [] []
/src/icu/source/common/putil.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/unistr.h ['fuzz_matcher'] []
/src/abseil-cpp/absl/base/casts.h [] []
/src/icu/source/common/uniset.cpp ['fuzz_matcher'] ['fuzz_matcher']
/usr/local/include/google/protobuf/stubs/stringpiece.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/stubs/int128.cc [] []
/src/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.h [] []
/usr/local/include/absl/container/internal/raw_hash_set.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/uniset_props.cpp ['fuzz_matcher'] []
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_matcher.cc ['fuzz_matcher'] []
/usr/local/include/absl/container/internal/raw_hash_map.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/usr/local/include/absl/container/internal/container_memory.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/locmap.cpp [] []
/src/protobuf/src/google/protobuf/stubs/mutex.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_shortnumberinfo.cc ['fuzz_shortnumberinfo'] []
/src/icu/source/common/filteredbrk.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/protobuf/src/google/protobuf/parse_context.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/wire_format_lite.cc [] []
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/unistr_case.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/locid.h ['fuzz_matcher'] []
/src/icu/source/common/./unicode/bytestrie.h ['fuzz_matcher'] []
/usr/local/bin/../include/c++/v1/stdexcept ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_matcher'] []
/src/abseil-cpp/absl/container/internal/raw_hash_set.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/./dictionarydata.h [] []
/src/icu/source/common/ustrcase_locale.cpp ['fuzz_matcher'] []
/usr/include/unicode/unistr.h ['fuzz_matcher'] ['fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/stl_util.h [] []
/src/icu/source/common/uniset_closure.cpp ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/string_view.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./hash.h [] []
/usr/local/include/absl/base/internal/unaligned_access.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/./unicode/uenum.h [] []
/usr/local/include/google/protobuf/message_lite.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/usr/local/include/absl/types/internal/optional.h ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/usr/local/include/absl/container/node_hash_set.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/default_logger.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/locdispnames.cpp [] []
/usr/local/include/absl/strings/string_view.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./restrace.h ['fuzz_matcher'] []
/src/icu/source/common/rbbirb.cpp [] []
/src/icu/source/common/edits.cpp ['fuzz_matcher'] []
/usr/local/bin/../include/c++/v1/string [] []
/src/icu/source/common/./unicode/chariter.h [] []
/src/icu/source/common/umutablecptrie.cpp ['fuzz_matcher'] []
/src/icu/source/common/locresdata.cpp [] []
/src/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.cc ['fuzz_matcher'] ['fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.cc [] []
/usr/local/include/google/protobuf/stubs/casts.h [] []
/src/icu/source/common/utf_impl.cpp ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/match.cc [] []
/src/abseil-cpp/absl/strings/numbers.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/i18n/../common/unicode/localpointer.h ['fuzz_matcher'] []
/src/icu/source/common/ustrtrns.cpp ['fuzz_matcher'] []
/src/icu/source/common/normalizer2impl.cpp ['fuzz_matcher'] []
/src/abseil-cpp/absl/hash/internal/city.cc [] []
/usr/local/include/google/protobuf/parse_context.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.cc ['fuzz_asyoutypeformatter'] ['fuzz_asyoutypeformatter']
/usr/local/include/absl/strings/numbers.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/abseil-cpp/absl/hash/internal/hash.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/utf/rune.c ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/rbbidata.cpp ['fuzz_matcher'] []
/usr/local/include/absl/hash/internal/hash.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/servlkf.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/icu/source/common/bytestream.cpp ['fuzz_matcher'] []
/src/icu/source/i18n/regexst.cpp ['fuzz_matcher'] []
/src/icu/source/common/umath.cpp ['fuzz_matcher'] []
/src/icu/source/common/chariter.cpp ['fuzz_matcher'] []
/src/icu/source/common/unistr_case_locale.cpp ['fuzz_matcher'] []
/usr/local/include/absl/strings/match.h ['fuzz_phone', 'fuzz_matcher'] []
/src/icu/source/common/resource.cpp [] []
/src/icu/source/common/./ruleiter.h ['fuzz_matcher'] []
/src/icu/source/common/uchriter.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/strutil.cc [] []
/src/icu/source/common/./unisetspan.h ['fuzz_matcher'] []
/src/icu/source/common/./rbbiscan.h [] []
/src/libphonenumber/cpp/src/phonenumbers/matcher_api.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_shortnumberinfo']
/src/libphonenumber/cpp/src/phonenumbers/region_code.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/unistr.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/icu/source/common/utrie2.cpp ['fuzz_matcher'] []
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_asyoutypeformatter.cc ['fuzz_asyoutypeformatter'] []
/src/icu/source/common/udata.cpp ['fuzz_matcher'] []
/src/icu/source/i18n/../common/cmemory.h ['fuzz_matcher'] []
/src/icu/source/common/rbbi_cache.cpp ['fuzz_matcher'] []
/src/icu/source/common/servslkf.cpp [] []
/src/icu/source/common/unistr_titlecase_brkiter.cpp ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/internal/resize_uninitialized.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/utypes.cpp [] []
/src/icu/source/common/rbbinode.cpp [] []
/src/abseil-cpp/absl/strings/internal/memutil.cc ['fuzz_asyoutypeformatter', 'fuzz_phone'] []
/src/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/libphonenumber/cpp/src/phonenumbers/utf/unilib.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/ustack.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/stringpiece.cc [] []
/src/icu/source/common/./uhash.h ['fuzz_matcher'] []
/src/icu/source/common/ucharstrie.cpp [] []
/src/icu/source/common/./unicode/symtable.h [] []
/src/protobuf/src/google/protobuf/arenastring.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/util.cpp ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/string_view.h [] []
/src/icu/source/common/rbbitblb.cpp [] []
/src/icu/source/i18n/regeximp.cpp [] []
/src/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc ['fuzz_matcher'] ['fuzz_matcher']
/usr/local/include/absl/types/optional.h ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/usr/local/include/google/protobuf/metadata_lite.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/stubs/status.cc [] []
/src/icu/source/common/cstring.cpp ['fuzz_matcher'] []
/src/icu/source/common/./norm2allmodes.h ['fuzz_matcher'] []
/src/abseil-cpp/absl/strings/str_cat.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/umutex.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/generated_enum_util.cc [] []
/usr/local/include/absl/strings/str_cat.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/usr/local/include/absl/memory/memory.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./unicode/parsepos.h ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/stubs/status.h [] []
/src/icu/source/common/ustrfmt.cpp [] []
/src/abseil-cpp/absl/numeric/int128.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/stubs/stl_util.h [] []
/src/icu/source/common/./resource.h [] []
/src/icu/source/common/ucmndata.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/localpointer.h ['fuzz_matcher'] []
/src/icu/source/common/uenum.cpp [] []
/usr/local/include/google/protobuf/io/coded_stream.h [] []
/src/icu/source/common/uloc_keytype.cpp ['fuzz_matcher'] []
/src/icu/source/common/propname.cpp ['fuzz_matcher'] []
/usr/local/include/absl/container/internal/hashtablez_sampler.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/brkeng.cpp [] []
/usr/local/include/google/protobuf/generated_message_util.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/./unicode/char16ptr.h ['fuzz_matcher'] []
/src/icu/source/common/utrie.cpp [] []
/src/protobuf/src/google/protobuf/stubs/callback.h [] []
/src/libphonenumber/cpp/src/phonenumbers/short_metadata.cc ['fuzz_shortnumberinfo'] ['fuzz_shortnumberinfo']
/src/libphonenumber/cpp/build/../test/phonenumbers/fuzz_phone.cc ['fuzz_phone'] []
/usr/local/include/absl/base/internal/prefetch.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/abseil-cpp/absl/numeric/bits.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/./umutex.h ['fuzz_matcher'] []
/src/icu/source/common/ustring.cpp ['fuzz_matcher'] []
/src/icu/source/common/ucol_swp.cpp [] []
/src/icu/source/common/ustrenum.cpp [] []
/src/icu/source/i18n/ucln_in.cpp ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/arena.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./unicode/stringtriebuilder.h [] []
/src/icu/source/common/unames.cpp ['fuzz_matcher'] []
/src/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc [] []
/src/libphonenumber/cpp/src/phonenumbers/phonenumber.pb.cc ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] ['fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher']
/src/icu/source/common/./locbased.h ['fuzz_matcher'] []
/src/icu/source/common/utext.cpp ['fuzz_matcher'] []
/src/icu/source/common/uloc.cpp ['fuzz_matcher'] []
/usr/local/include/google/protobuf/arena_impl.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/cmemory.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/ures.h ['fuzz_matcher'] []
/src/icu/source/common/bytestrie.cpp ['fuzz_matcher'] []
/src/icu/source/common/./unicode/unifunct.h ['fuzz_matcher'] []
/src/protobuf/src/google/protobuf/generated_message_util.h ['fuzz_asyoutypeformatter', 'fuzz_phone', 'fuzz_shortnumberinfo', 'fuzz_matcher'] []
/src/icu/source/common/./normalizer2impl.h ['fuzz_matcher'] []
/src/icu/source/common/uarrsort.cpp ['fuzz_matcher'] []
/src/icu/source/common/ustr_titlecase_brkiter.cpp ['fuzz_matcher'] ['fuzz_matcher']
/src/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h [] []
/src/abseil-cpp/absl/numeric/int128_have_intrinsic.inc [] []

Directories in report

Directory
/usr/local/include/absl/container/internal/
/src/icu/source/common/./unicode/
/src/protobuf/src/google/protobuf/
/src/abseil-cpp/absl/strings/internal/
/usr/local/bin/../include/c++/v1/
/src/libphonenumber/cpp/src/phonenumbers/base/synchronization/
/usr/local/include/absl/memory/
/usr/local/include/google/protobuf/
/src/icu/source/i18n/../common/unicode/
/usr/local/include/absl/strings/
/usr/local/include/google/protobuf/stubs/
/src/icu/source/i18n/../common/
/src/libphonenumber/cpp/src/phonenumbers/
/src/icu/source/common/./
/src/libphonenumber/cpp/src/phonenumbers/utf/
/usr/local/include/absl/types/internal/
/usr/local/include/absl/strings/internal/
/src/icu/source/i18n/
/src/abseil-cpp/absl/container/internal/
/src/libphonenumber/cpp/build/../test/phonenumbers/
/usr/include/unicode/
/src/abseil-cpp/absl/base/
/src/libphonenumber/cpp/src/phonenumbers/base/strings/
/src/abseil-cpp/absl/types/
/usr/local/bin/../include/c++/v1/__exception/
/usr/local/include/absl/base/internal/
/src/libphonenumber/cpp/src/phonenumbers/base/memory/
/usr/local/include/absl/utility/
/src/abseil-cpp/absl/hash/internal/
/usr/local/include/absl/container/
/src/protobuf/src/google/protobuf/stubs/
/src/abseil-cpp/absl/numeric/
/usr/local/include/google/protobuf/io/
/usr/local/include/absl/numeric/
/usr/local/include/absl/types/
/src/icu/source/common/
/src/abseil-cpp/absl/base/internal/
/src/protobuf/src/google/protobuf/io/
/src/abseil-cpp/absl/strings/
/src/icu/source/i18n/./
/usr/include/x86_64-linux-gnu/bits/
/usr/local/include/absl/hash/internal/