Project: immer

Language c++
OSS-Fuzz project link
Project repository link
Build status: Fuzzers succeeding: Build log
Build status: Code coverage succeeding: Build log
Build status: Fuzz Introspector succeeding: Build log
Fuzzer count 19
Lines of code 10951
Lines covered 9720
Code coverage 88.76%
Code coverage report Report link
Static reachability 83.29%
Fuzz Introspector report Report link (from 2025-05-30)
Fuzzer Code coverage (lines) Latest Report Comments
array 83.87% (avg: 83.87%, max: 83.87%) 2025-05-30
array-gc 85.66% (avg: 85.66%, max: 85.66%) 2025-05-30
flex-vector 77.5% (avg: 77.5%, max: 77.5%) 2025-05-30
flex-vector-bo 76.86% (avg: 76.86%, max: 76.86%) 2025-05-30
flex-vector-gc 80.84% (avg: 80.84%, max: 80.84%) 2025-05-30
flex-vector-st 77.47% (avg: 77.47%, max: 77.47%) 2025-05-30
map 84.84% (avg: 84.84%, max: 84.84%) 2025-05-30
map-gc 80.87% (avg: 80.86%, max: 80.87%) 2025-05-30
map-st 84.03% (avg: 84.03%, max: 84.03%) 2025-05-30
map-st-str 73.75% (avg: 73.75%, max: 73.75%) 2025-05-30
map-st-str-conflict 84.7% (avg: 84.7%, max: 84.7%) 2025-05-30
set 82.01% (avg: 82.01%, max: 82.01%) 2025-05-30
set-gc 76.53% (avg: 76.53%, max: 76.53%) 2025-05-30
set-st 81.57% (avg: 81.57%, max: 81.57%) 2025-05-30
set-st-str 71.31% (avg: 71.31%, max: 71.31%) 2025-05-30
set-st-str-conflict 81.94% (avg: 81.94%, max: 81.94%) 2025-05-30
vector 84.46% (avg: 84.46%, max: 84.46%) 2025-05-30
vector-gc 79.85% (avg: 79.85%, max: 79.85%) 2025-05-30
vector-st 83.96% (avg: 83.96%, max: 83.96%) 2025-05-30

Historical Progression

Per Fuzzer Progression

Functions of interest to fuzz

This section outlines functions that may be of interest to fuzz. They are based on ranking functions that have a lot of complexity but currently exhibit low code coverage. The complexity is calculated based on the function itself as well as the functions called by the given function, i.e. the tree of code that the function triggers.


This is only a minor amount of introspection information available for this project. Please consult the Fuzz Introspector report for more information, e.g. the introspection table of all functions in the target project available here.

Function name Function source file Accumulated cyclomatic complexity Code coverage
std::__1::tuple<unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>::visit_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap,1024ul>>::type::edit) /src/immer/immer/detail/rbts/operations.hpp 747 0.0%
std::__1::tuple<unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,true>::visit_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap>>::type::edit) /src/immer/immer/detail/rbts/operations.hpp 724 0.0%
std::__1::tuple<unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>::visit_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap>>::type::edit) /src/immer/immer/detail/rbts/operations.hpp 704 0.0%
std::__1::tuple<unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*,unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*>immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,true,true>::visit_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap>>::type::edit) /src/immer/immer/detail/rbts/operations.hpp 704 0.0%
std::__1::tuple<unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*,unsignedint,immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*>immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,true,true>::visit_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::cpp_heap>,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply<immer::heap_policy<immer::cpp_heap>>::type::edit) /src/immer/immer/detail/rbts/operations.hpp 704 0.0%
decltype(auto)immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap,1024ul>>::type::edit&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,unsignedlong,unsignedint,unsignedint,immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap,1024ul>>::type::edit&) /src/immer/immer/detail/rbts/position.hpp 689 0.0%
decltype(auto)immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,unsignedlong&,immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap,1024ul>>::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,unsignedlong&,immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap,1024ul>>::type::edit&) /src/immer/immer/detail/rbts/position.hpp 686 0.0%
decltype(auto)immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>::towards_oh<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap,1024ul>>::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::free_list_heap_policy<immer::cpp_heap,1024ul>,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,unsignedlong,unsignedint,immer::no_transience_policy::apply<immer::free_list_heap_policy<immer::cpp_heap,1024ul>>::type::edit&) /src/immer/immer/detail/rbts/position.hpp 686 0.0%
decltype(auto)immer::detail::rbts::towards_oh_ch_regular<immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,true>,immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap>>::type::edit&>(immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,true>,unsignedlong,unsignedint,unsignedint,immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap>>::type::edit&) /src/immer/immer/detail/rbts/position.hpp 666 0.0%
decltype(auto)immer::detail::rbts::regular_pos<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::visit<immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,true>,unsignedlong&,immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap>>::type::edit&>(immer::detail::rbts::slice_right_mut_visitor<immer::detail::rbts::node<int,immer::memory_policy<immer::heap_policy<immer::gc_heap>,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,true>,unsignedlong&,immer::gc_transience_policy::apply<immer::heap_policy<immer::gc_heap>>::type::edit&) /src/immer/immer/detail/rbts/position.hpp 663 0.0%