Project: immer

Language c++
OSS-Fuzz project 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 10874
Lines covered 9644
Code coverage 88.69%
Code coverage report Report link
Static reachability 83.26%
Fuzz Introspector report Report link (from 2024-07-25)

Historical 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,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%
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%
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%