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

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
array /src/immer/extra/fuzzer/array.cpp 158 19 11 12 362 261 array.cpp
array-gc /src/immer/extra/fuzzer/array-gc.cpp 225 25 9 14 487 374 array-gc.cpp
set-gc /src/immer/extra/fuzzer/set-gc.cpp 254 51 11 14 794 412 set-gc.cpp
set /src/immer/extra/fuzzer/set.cpp 290 65 11 16 1065 503 set.cpp
set-st /src/immer/extra/fuzzer/set-st.cpp 310 66 11 15 1269 592 set-st.cpp
set-st-str-conflict /src/immer/extra/fuzzer/set-st-str-conflict.cpp 320 66 11 15 1695 1057 set-st-str-conflict.cpp
vector-st /src/immer/extra/fuzzer/vector-st.cpp 417 138 13 13 1288 732 vector-st.cpp
map-gc /src/immer/extra/fuzzer/map-gc.cpp 318 63 11 16 1098 671 map-gc.cpp
vector /src/immer/extra/fuzzer/vector.cpp 446 138 13 19 1411 775 vector.cpp
map /src/immer/extra/fuzzer/map.cpp 385 64 11 16 1704 862 map.cpp
set-st-str /src/immer/extra/fuzzer/set-st-str.cpp 318 66 11 15 1692 1055 set-st-str.cpp
vector-gc /src/immer/extra/fuzzer/vector-gc.cpp 471 143 13 15 1404 809 vector-gc.cpp
map-st /src/immer/extra/fuzzer/map-st.cpp 361 64 11 15 1539 760 map-st.cpp
map-st-str-conflict /src/immer/extra/fuzzer/map-st-str-conflict.cpp 400 77 11 18 2355 1532 map-st-str-conflict.cpp
map-st-str /src/immer/extra/fuzzer/map-st-str.cpp 398 77 11 18 2352 1530 map-st-str.cpp
flex-vector-bo /src/immer/extra/fuzzer/flex-vector-bo.cpp 1835 356 19 19 8212 4680 flex-vector-bo.cpp
flex-vector-gc /src/immer/extra/fuzzer/flex-vector-gc.cpp 1902 336 19 16 8205 4710 flex-vector-gc.cpp
flex-vector-st /src/immer/extra/fuzzer/flex-vector-st.cpp 1856 355 19 19 8315 4746 flex-vector-st.cpp
flex-vector /src/immer/extra/fuzzer/flex-vector.cpp 1886 355 19 23 8440 4774 flex-vector.cpp

Fuzzer details

Fuzzer: array

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 64 49.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 65 50.3%
All colors 129 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
82
Functions that are reachable but not covered
51
Reachable functions
158
Percentage of reachable functions covered
67.72%
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/immer/extra/fuzzer/array.cpp 8
/src/immer/immer/array.hpp 13
/src/immer/immer/detail/arrays/with_capacity.hpp 16
/src/immer/immer/detail/arrays/node.hpp 8
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/combine_standard_layout.hpp 4
/src/immer/immer/refcount/refcount_policy.hpp 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/detail/util.hpp 2
/src/immer/immer/transience/no_transience_policy.hpp 1

Fuzzer: array-gc

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 91 48.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 96 51.3%
All colors 187 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
107
Functions that are reachable but not covered
75
Reachable functions
225
Percentage of reachable functions covered
66.67%
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/immer/extra/fuzzer/array-gc.cpp 10
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/array.hpp 8
/src/immer/immer/detail/arrays/no_capacity.hpp 10
/src/immer/immer/detail/arrays/node.hpp 8
/src/immer/immer/heap/gc_heap.hpp 3
/src/immer/immer/detail/combine_standard_layout.hpp 5
/src/immer/immer/refcount/no_refcount_policy.hpp 4
/src/immer/immer/transience/gc_transience_policy.hpp 7
/src/immer/immer/array_transient.hpp 8
/src/immer/immer/detail/arrays/with_capacity.hpp 15
/src/immer/extra/fuzzer/fuzzer_input.hpp 10
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/detail/util.hpp 2

Fuzzer: set-gc

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 146 36.1%
gold [1:9] 1 0.24%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 257 63.6%
All colors 404 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
142
Functions that are reachable but not covered
79
Reachable functions
254
Percentage of reachable functions covered
68.9%
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/immer/extra/fuzzer/set-gc.cpp 5
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/set.hpp 11
/src/immer/immer/detail/hamts/champ.hpp 16
/src/immer/immer/detail/hamts/node.hpp 48
/src/immer/immer/detail/combine_standard_layout.hpp 7
/src/immer/immer/refcount/no_refcount_policy.hpp 3
/src/immer/immer/transience/gc_transience_policy.hpp 2
/src/immer/immer/detail/util.hpp 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 6
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/gc_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/algorithm.hpp 5

Fuzzer: set

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 134 26.0%
gold [1:9] 1 0.19%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 380 73.7%
All colors 515 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
188
Functions that are reachable but not covered
43
Reachable functions
290
Percentage of reachable functions covered
85.17%
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/immer/extra/fuzzer/set.cpp 4
/src/immer/immer/set.hpp 9
/src/immer/immer/detail/hamts/champ.hpp 16
/src/immer/immer/detail/hamts/node.hpp 57
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 4
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: set-st

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 165 24.7%
gold [1:9] 1 0.15%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 500 75.0%
All colors 666 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
199
Functions that are reachable but not covered
43
Reachable functions
310
Percentage of reachable functions covered
86.13%
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/immer/extra/fuzzer/set-st.cpp 4
/src/immer/immer/set.hpp 11
/src/immer/immer/detail/hamts/champ.hpp 22
/src/immer/immer/detail/hamts/node.hpp 61
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 5
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: set-st-str-conflict

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 256 32.4%
gold [1:9] 1 0.12%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 532 67.4%
All colors 789 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
48 80 7 :

['std::__1::basic_string , std::__1::allocator >::basic_string(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::nodemap() const', 'immer::detail::hamts::champ , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut::sub_result_mut(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, bool)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::datamap() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::make_inner_n(unsigned int, unsigned char, std::__1::basic_string , std::__1::allocator >)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::owned_values(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, immer::no_transience_policy::apply >::type::edit)']

48 118 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::sub_result_mutimmer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::do_sub_mut ,std::__1::allocator >>(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint,void*)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1452
48 56 4 :

['std::__1::basic_string , std::__1::allocator >::basic_string(std::__1::basic_string , std::__1::allocator > const&)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::make_inner_n(unsigned int, unsigned char, std::__1::basic_string , std::__1::allocator >)', 'immer::detail::hamts::champ , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result::sub_result(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::datamap() const']

48 62 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::sub_resultimmer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::do_sub ,std::__1::allocator >>(immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1265
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 15 1 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::delete_values(immer::detail::csl::member_two , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)']

0 15 immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::ensure_mutable_values(immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:389

Runtime coverage analysis

Covered functions
201
Functions that are reachable but not covered
47
Reachable functions
320
Percentage of reachable functions covered
85.31%
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/immer/extra/fuzzer/set-st-str-conflict.cpp 4
/src/immer/immer/set.hpp 12
/src/immer/immer/detail/hamts/champ.hpp 24
/src/immer/immer/detail/hamts/node.hpp 61
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 6
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 2
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: vector-st

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 113 35.2%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 208 64.7%
All colors 321 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 29 1 :

['void immer::detail::rbts::regular_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 63 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 29 1 :

['void immer::detail::rbts::regular_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 57 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 17 1 :

['void immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 51 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 17 1 :

['void immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 51 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 17 1 :

['void immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 45 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 17 1 :

['void immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 45 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 8 2 :

['immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_leaf ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_leaf ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_leaf ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_leaf ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 0 2 :

['std::__1::tuple ::type, std::__1::__unwrap_ref_decay ::type, std::__1::__unwrap_ref_decay ::type, std::__1::__unwrap_ref_decay , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*&>::type> std::__1::make_tuple , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*&>(unsigned int&&, decltype(nullptr)&&, unsigned int&, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*&)', 'std::__1::tuple , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*>::tuple , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, 0>(std::__1::tuple , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*>&&)']

16 95 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1021

Runtime coverage analysis

Covered functions
299
Functions that are reachable but not covered
84
Reachable functions
417
Percentage of reachable functions covered
79.86%
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/immer/extra/fuzzer/vector-st.cpp 7
/src/immer/immer/vector.hpp 12
/src/immer/immer/detail/rbts/rbtree.hpp 22
/src/immer/immer/detail/rbts/node.hpp 30
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/combine_standard_layout.hpp 8
/src/immer/immer/detail/util.hpp 4
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/position.hpp 21
/src/immer/immer/detail/rbts/operations.hpp 5

Fuzzer: map-gc

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 251 45.2%
gold [1:9] 1 0.18%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 303 54.5%
All colors 555 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
185
Functions that are reachable but not covered
106
Reachable functions
318
Percentage of reachable functions covered
66.67%
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/immer/extra/fuzzer/map-gc.cpp 6
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/map.hpp 27
/src/immer/immer/detail/hamts/champ.hpp 23
/src/immer/immer/detail/hamts/node.hpp 46
/src/immer/immer/detail/combine_standard_layout.hpp 7
/src/immer/immer/refcount/no_refcount_policy.hpp 3
/src/immer/immer/transience/gc_transience_policy.hpp 2
/src/immer/immer/detail/util.hpp 6
/src/immer/extra/fuzzer/fuzzer_input.hpp 6
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/gc_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: vector

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 118 32.5%
gold [1:9] 2 0.55%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 243 66.9%
All colors 363 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 29 1 :

['void immer::detail::rbts::regular_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 63 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 29 1 :

['void immer::detail::rbts::regular_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 57 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 17 1 :

['void immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 51 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 17 1 :

['void immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 51 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 17 1 :

['void immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 45 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 17 1 :

['void immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 45 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 8 2 :

['immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_leaf ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_leaf ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_leaf ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::leaf()', 'std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)']

0 8 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_leaf ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 6 1 :

['void immer::debug_size_heap ::deallocate<>(unsigned long, void*)']

0 6 voidimmer::split_heap<56ul,immer::with_free_list_node >>>,immer::debug_size_heap >::deallocate<>(unsignedlong,void*) call site: 00000 /src/immer/immer/heap/split_heap.hpp:34

Runtime coverage analysis

Covered functions
313
Functions that are reachable but not covered
85
Reachable functions
446
Percentage of reachable functions covered
80.94%
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/immer/extra/fuzzer/vector.cpp 7
/src/immer/immer/vector.hpp 12
/src/immer/immer/detail/rbts/rbtree.hpp 22
/src/immer/immer/detail/rbts/node.hpp 30
/src/immer/immer/heap/split_heap.hpp 2
/src/immer/immer/heap/with_data.hpp 2
/src/immer/immer/heap/unsafe_free_list_heap.hpp 3
/src/immer/immer/heap/thread_local_free_list_heap.hpp 2
/src/immer/immer/heap/free_list_heap.hpp 3
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/combine_standard_layout.hpp 8
/src/immer/immer/detail/util.hpp 4
/src/immer/immer/refcount/refcount_policy.hpp 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/position.hpp 21
/src/immer/immer/detail/rbts/operations.hpp 5

Fuzzer: map

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 391 40.8%
gold [1:9] 1 0.10%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 565 59.0%
All colors 957 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
235
Functions that are reachable but not covered
86
Reachable functions
385
Percentage of reachable functions covered
77.66%
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/immer/extra/fuzzer/map.cpp 8
/src/immer/immer/map.hpp 28
/src/immer/immer/detail/hamts/champ.hpp 35
/src/immer/immer/detail/hamts/node.hpp 65
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 8
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: set-st-str

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 348 44.1%
gold [1:9] 1 0.12%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 439 55.7%
All colors 788 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
211 211 5 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_collision_insert(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_replace(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >*, std::__1::basic_string , std::__1::allocator >)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_insert(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >)']

211 269 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_add_mut(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:648
153 153 5 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_remove(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >*)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::delete_collision(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_collision_remove(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >*)']

153 173 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_result_mutimmer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub_mut ,std::__1::allocator >>(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint,void*)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1354
153 153 4 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_replace(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >*, std::__1::basic_string , std::__1::allocator >)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_insert(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >)']

153 153 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_add(immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:575
88 88 3 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_remove(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >*)']

88 94 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_resultimmer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub ,std::__1::allocator >>(immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1208
21 21 1 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::delete_collision(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*)']

21 21 immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::delete_deep(immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,unsignedint) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:1101
20 20 1 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_collision(std::__1::basic_string , std::__1::allocator >, std::__1::basic_string , std::__1::allocator >)']

20 32 immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::make_merged_e(immer::no_transience_policy::apply >::type::edit,unsignedint,std::__1::basic_string ,std::__1::allocator >,unsignedlong,std::__1::basic_string ,std::__1::allocator >,unsignedlong) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:1024
20 20 1 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_collision(std::__1::basic_string , std::__1::allocator >, std::__1::basic_string , std::__1::allocator >)']

20 20 immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::make_merged(unsignedint,std::__1::basic_string ,std::__1::allocator >,unsignedlong,std::__1::basic_string ,std::__1::allocator >,unsignedlong) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:995
12 12 2 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()']

12 14 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_check_champ(immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,unsignedint,unsignedlong,unsignedlong)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:206
12 12 2 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()']

12 12 immer::detail::hamts::champ_iterator ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::step_down() call site: 00000 /src/immer/immer/detail/hamts/champ_iterator.hpp:91
12 12 2 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()']

12 12 immer::detail::hamts::champ_iterator ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::step_right() call site: 00000 /src/immer/immer/detail/hamts/champ_iterator.hpp:116
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 15 1 :

['immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::delete_values(immer::detail::csl::member_two , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)']

0 15 immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::ensure_mutable_values(immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:389

Runtime coverage analysis

Covered functions
187
Functions that are reachable but not covered
69
Reachable functions
318
Percentage of reachable functions covered
78.3%
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/immer/extra/fuzzer/set-st-str.cpp 4
/src/immer/immer/set.hpp 12
/src/immer/immer/detail/hamts/champ.hpp 24
/src/immer/immer/detail/hamts/node.hpp 61
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 6
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: vector-gc

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 147 40.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 217 59.6%
All colors 364 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 29 1 :

['void immer::detail::rbts::regular_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 63 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,false,false>::visit_regular ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::regular_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 29 1 :

['void immer::detail::rbts::regular_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 57 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,false,false>::visit_regular ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::regular_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 17 1 :

['void immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 51 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,false>::visit_regular ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 17 1 :

['void immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 51 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,false,false>::visit_regular ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1010
0 17 1 :

['void immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 45 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,false>::visit_regular ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 17 1 :

['void immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

16 45 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,false,false>::visit_regular ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1033
0 8 2 :

['std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)', 'immer::detail::rbts::node , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::leaf()']

0 8 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,false>::visit_leaf ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)', 'immer::detail::rbts::node , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::leaf()']

0 8 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,false,false>::visit_leaf ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)', 'immer::detail::rbts::node , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::leaf()']

0 8 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,false>::visit_leaf ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 8 2 :

['std::__1::enable_if , int*>::type immer::detail::destroy_n (int*, unsigned int)', 'immer::detail::rbts::node , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::leaf()']

0 8 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,false,false>::visit_leaf ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1067
0 0 2 :

['std::__1::tuple ::type, std::__1::__unwrap_ref_decay ::type, std::__1::__unwrap_ref_decay ::type, std::__1::__unwrap_ref_decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*&>::type> std::__1::make_tuple , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*&>(unsigned int&&, decltype(nullptr)&&, unsigned int&, immer::detail::rbts::node , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*&)', 'std::__1::tuple , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, unsigned int, immer::detail::rbts::node , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*>::tuple , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, 0>(std::__1::tuple , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*>&&)']

16 101 std::__1::tuple ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,true,true>::visit_regular ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,unsignedlong,immer::gc_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1021

Runtime coverage analysis

Covered functions
309
Functions that are reachable but not covered
118
Reachable functions
471
Percentage of reachable functions covered
74.95%
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/immer/extra/fuzzer/vector-gc.cpp 9
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/vector.hpp 7
/src/immer/immer/detail/rbts/rbtree.hpp 22
/src/immer/immer/detail/rbts/node.hpp 32
/src/immer/immer/heap/gc_heap.hpp 3
/src/immer/immer/detail/combine_standard_layout.hpp 9
/src/immer/immer/detail/util.hpp 4
/src/immer/immer/refcount/no_refcount_policy.hpp 3
/src/immer/immer/vector_transient.hpp 8
/src/immer/immer/transience/gc_transience_policy.hpp 9
/src/immer/extra/fuzzer/fuzzer_input.hpp 10
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/detail/rbts/position.hpp 21
/src/immer/immer/detail/rbts/operations.hpp 5

Fuzzer: map-st

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 315 35.8%
gold [1:9] 1 0.11%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 563 64.0%
All colors 879 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
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31

Runtime coverage analysis

Covered functions
223
Functions that are reachable but not covered
66
Reachable functions
361
Percentage of reachable functions covered
81.72%
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/immer/extra/fuzzer/map-st.cpp 6
/src/immer/immer/map.hpp 25
/src/immer/immer/detail/hamts/champ.hpp 30
/src/immer/immer/detail/hamts/node.hpp 65
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 8
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: map-st-str-conflict

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 451 42.2%
gold [1:9] 1 0.09%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 616 57.6%
All colors 1068 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
56 88 7 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::make_inner_n(unsigned int, unsigned char, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >::~pair()', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::datamap() const', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::owned_values(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, immer::no_transience_policy::apply >::type::edit)', 'std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >::pair(std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > const&)', 'immer::detail::hamts::champ , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut::sub_result_mut(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, bool)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::nodemap() const']

56 126 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::sub_result_mutimmer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::do_sub_mut ,std::__1::allocator >>(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint,void*)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1452
56 64 4 :

['std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >::pair(std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > const&)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::datamap() const', 'immer::detail::hamts::champ , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result::sub_result(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::make_inner_n(unsigned int, unsigned char, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)']

56 70 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::sub_resultimmer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::do_sub ,std::__1::allocator >>(immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1265
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 15 1 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::delete_values(immer::detail::csl::member_two , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)']

0 15 immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::ensure_mutable_values(immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:389

Runtime coverage analysis

Covered functions
249
Functions that are reachable but not covered
70
Reachable functions
400
Percentage of reachable functions covered
82.5%
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/immer/extra/fuzzer/map-st-str-conflict.cpp 6
/src/immer/immer/map.hpp 25
/src/immer/immer/detail/hamts/champ.hpp 32
/src/immer/immer/detail/hamts/node.hpp 66
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/box.hpp 8
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 2
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: map-st-str

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 555 52.0%
gold [1:9] 1 0.09%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 511 47.8%
All colors 1067 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
226 226 5 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_insert(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_replace(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_collision_insert(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)']

226 286 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_add_mut(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:648
190 190 5 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_collision_remove(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_remove(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::delete_collision(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*)']

190 212 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_result_mutimmer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub_mut ,std::__1::allocator >>(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint,void*)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1354
155 155 4 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_insert(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_replace(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()']

155 157 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_add(immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:575
88 88 3 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_remove(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()']

88 96 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_resultimmer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub ,std::__1::allocator >>(immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1208
41 41 1 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_collision(std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)']

41 53 immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::make_merged_e(immer::no_transience_policy::apply >::type::edit,unsignedint,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:1024
41 41 1 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_collision(std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)']

41 41 immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::make_merged(unsignedint,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:995
21 21 1 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::delete_collision(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*)']

21 21 immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::delete_deep(immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,unsignedint) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:1101
12 12 2 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const']

12 16 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_check_champ(immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,unsignedint,unsignedlong,unsignedlong)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:206
12 12 2 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const']

12 12 immer::detail::hamts::champ_iterator ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::step_down() call site: 00000 /src/immer/immer/detail/hamts/champ_iterator.hpp:91
12 12 2 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::collision_count() const']

12 12 immer::detail::hamts::champ_iterator ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::step_right() call site: 00000 /src/immer/immer/detail/hamts/champ_iterator.hpp:116
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 15 1 :

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::delete_values(immer::detail::csl::member_two , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)']

0 15 immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::ensure_mutable_values(immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:389

Runtime coverage analysis

Covered functions
235
Functions that are reachable but not covered
92
Reachable functions
398
Percentage of reachable functions covered
76.88%
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/immer/extra/fuzzer/map-st-str.cpp 6
/src/immer/immer/map.hpp 25
/src/immer/immer/detail/hamts/champ.hpp 32
/src/immer/immer/detail/hamts/node.hpp 66
/src/immer/immer/detail/combine_standard_layout.hpp 10
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/src/immer/extra/fuzzer/fuzzer_input.hpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/box.hpp 8
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 1
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 5
/src/immer/immer/detail/iterator_facade.hpp 2
/src/immer/immer/algorithm.hpp 2

Fuzzer: flex-vector-bo

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 203 29.2%
gold [1:9] 2 0.28%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 488 70.4%
All colors 693 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
444 737 2 :

['immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&)']

444 737 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
303 526 2 :

['immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&)']

303 526 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
229 229 2 :

['decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&)', 'immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)']

229 229 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
229 229 2 :

['decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&)', 'immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)']

229 229 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
229 229 2 :

['decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&)', 'immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)']

229 229 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
171 175 2 :

['immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> > immer::detail::rbts::make_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >(immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long)', 'decltype(auto) immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*&, unsigned int&, unsigned long&)']

171 175 decltype(auto)immer::detail::rbts::visit_maybe_relaxed_sub ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>&,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*&,unsignedint&,unsignedlong&>(immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*,unsignedint,unsignedlong,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>&,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*&,unsignedint&,unsignedlong&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1841
63 63 1 :

['decltype(auto) immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit (immer::detail::rbts::dec_left_visitor, unsigned int&)']

63 63 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,true,true>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1318
25 25 1 :

['void immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left (immer::detail::rbts::dec_visitor, unsigned int)']

47 172 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,false,true>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1341
25 25 1 :

['void immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left (immer::detail::rbts::dec_visitor, unsigned int)']

47 172 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,true,true>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1341
25 25 1 :

['void immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left (immer::detail::rbts::dec_visitor, unsigned int)']

47 107 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,true,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1341
25 25 1 :

['void immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left (immer::detail::rbts::dec_visitor, unsigned int)']

47 107 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,false,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1341
17 17 1 :

['void immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::each_left (immer::detail::rbts::dec_visitor, unsigned int)']

39 93 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,true,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1341

Runtime coverage analysis

Covered functions
1067
Functions that are reachable but not covered
259
Reachable functions
1835
Percentage of reachable functions covered
85.89%
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/immer/extra/fuzzer/flex-vector-bo.cpp 9
/src/immer/immer/flex_vector.hpp 26
/src/immer/immer/detail/rbts/rrbtree.hpp 35
/src/immer/immer/detail/rbts/node.hpp 39
/src/immer/immer/detail/combine_standard_layout.hpp 8
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/extra/fuzzer/fuzzer_input.hpp 9
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/rbts/position.hpp 43
/src/immer/immer/detail/rbts/operations.hpp 11
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/visitor.hpp 2
/src/immer/immer/detail/rbts/rrbtree_iterator.hpp 1
/src/immer/immer/detail/iterator_facade.hpp 4
/src/immer/immer/box.hpp 2
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 1

Fuzzer: flex-vector-gc

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 305 36.7%
gold [1:9] 2 0.24%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 523 63.0%
All colors 830 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
570 913 2 :

['decltype(auto) immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_mut_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)', 'immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance_mut , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type::node_t::edit_t, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::null_sub_pos&&)']

570 913 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners_mut ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type::node_t::edit_t,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
500 849 2 :

['decltype(auto) immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)', 'immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)']

500 849 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
361 598 2 :

['immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance_mut , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type::node_t::edit_t, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_mut_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)']

361 598 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners_mut ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type::node_t::edit_t,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
359 638 2 :

['decltype(auto) immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)', 'immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)']

359 638 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
285 285 2 :

['immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)']

285 285 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
285 285 2 :

['decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)', 'immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)']

285 285 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
285 285 2 :

['decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)', 'immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)']

285 285 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
239 239 2 :

['immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance_mut , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type::node_t::edit_t, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_mut_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)']

239 239 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners_mut ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type::node_t::edit_t,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
239 239 2 :

['immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance_mut , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type::node_t::edit_t, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_mut_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)']

239 239 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners_mut ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type::node_t::edit_t,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
239 239 2 :

['immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance_mut , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type::node_t::edit_t, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, std::__1::decay , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::type, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_mut_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::full_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)']

239 239 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners_mut ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type::node_t::edit_t,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,std::__1::decay ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::type,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
4 10 2 :

['immer::detail::rbts::node , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::sizeof_inner_r_n(unsigned int)', 'immer::gc_heap::deallocate(unsigned long, void*)']

4 26 autoimmer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>::ensure_mutable_relaxed_n(immer::gc_transience_policy::apply >::type::edit,unsignedint)::{lambda(auto:1)#2}::operator() (immer::detail::empty_t)const call site: 00000 /src/immer/immer/detail/rbts/node.hpp:934

Runtime coverage analysis

Covered functions
1070
Functions that are reachable but not covered
262
Reachable functions
1902
Percentage of reachable functions covered
86.23%
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/immer/extra/fuzzer/flex-vector-gc.cpp 11
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/flex_vector.hpp 11
/src/immer/immer/detail/rbts/rrbtree.hpp 35
/src/immer/immer/detail/rbts/node.hpp 44
/src/immer/immer/detail/combine_standard_layout.hpp 12
/src/immer/immer/refcount/no_refcount_policy.hpp 4
/src/immer/immer/transience/gc_transience_policy.hpp 10
/src/immer/immer/detail/util.hpp 9
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/flex_vector_transient.hpp 12
/src/immer/immer/heap/gc_heap.hpp 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 11
/src/immer/immer/detail/rbts/position.hpp 42
/src/immer/immer/detail/rbts/operations.hpp 13
/src/immer/immer/detail/rbts/visitor.hpp 2

Fuzzer: flex-vector-st

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 212 29.4%
gold [1:9] 2 0.27%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 506 70.2%
All colors 720 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 801 2 :

['decltype(auto) immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&)', 'immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)']

476 801 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
335 590 2 :

['immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&)']

335 590 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
261 261 2 :

['immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&)']

261 261 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
261 261 2 :

['immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&)']

261 261 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
261 261 2 :

['immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::concat_rebalance , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::concat_center_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::last_sub , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&>(immer::detail::rbts::concat_left_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >, immer::detail::rbts::empty_leaf_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&)']

261 261 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
171 175 2 :

['immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::make_regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >(immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*, unsigned int, unsigned long)', 'decltype(auto) immer::detail::rbts::regular_sub_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::visit , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*&, unsigned int&, unsigned long&)']

171 175 decltype(auto)immer::detail::rbts::visit_maybe_relaxed_sub ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*&,unsignedint&,unsignedlong&>(immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*,unsignedint,unsignedlong,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*&,unsignedint&,unsignedlong&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1841
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
6 8 2 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

43 894 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,true,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
6 8 2 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

43 894 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,false,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
6 8 2 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

43 550 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,true,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
6 8 2 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

43 550 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,false,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
0 192 2 :

['void immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)', 'immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::ensure_mutable_relaxed_n(immer::no_transience_policy::apply >::type::edit, unsigned int)']

10 357 std::__1::tuple ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*,unsignedint,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,true,false>::visit_relaxed ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:932

Runtime coverage analysis

Covered functions
1093
Functions that are reachable but not covered
231
Reachable functions
1856
Percentage of reachable functions covered
87.55%
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/immer/extra/fuzzer/flex-vector-st.cpp 9
/src/immer/immer/flex_vector.hpp 27
/src/immer/immer/detail/rbts/rrbtree.hpp 35
/src/immer/immer/detail/rbts/node.hpp 43
/src/immer/immer/detail/combine_standard_layout.hpp 11
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/extra/fuzzer/fuzzer_input.hpp 9
/src/immer/immer/heap/cpp_heap.hpp 3
/src/immer/immer/detail/rbts/position.hpp 43
/src/immer/immer/detail/rbts/operations.hpp 11
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/visitor.hpp 2
/src/immer/immer/detail/rbts/rrbtree_iterator.hpp 1
/src/immer/immer/detail/iterator_facade.hpp 4
/src/immer/immer/box.hpp 2
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 1

Fuzzer: flex-vector

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 217 28.6%
gold [1:9] 4 0.52%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 537 70.8%
All colors 758 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
529 907 2 :

['immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, immer::detail::rbts::relaxed_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::relaxed_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::relaxed_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::last_sub , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&)']

529 907 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
388 696 2 :

['decltype(auto) immer::detail::rbts::regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::last_sub , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&)', 'immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, immer::detail::rbts::regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)']

388 696 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
314 314 2 :

['immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::last_sub , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::relaxed_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::relaxed_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&)']

314 314 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
314 314 2 :

['immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::last_sub , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&)']

314 314 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
314 314 2 :

['decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::last_sub , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::concat_left_visitor , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::full_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&)', 'immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)']

314 314 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
171 175 2 :

['decltype(auto) immer::detail::rbts::regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>&, immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*&, unsigned int&, unsigned long&>(immer::detail::rbts::equals_visitor::rrb, immer::detail::rbts::rrbtree_iterator , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>&, immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*&, unsigned int&, unsigned long&)', 'immer::detail::rbts::regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::make_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >(immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, unsigned long)']

171 175 decltype(auto)immer::detail::rbts::visit_maybe_relaxed_sub ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>&,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*&,unsignedint&,unsignedlong&>(immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,unsignedlong,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>&,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*&,unsignedint&,unsignedlong&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1841
8 8 3 :

['__cxa_allocate_exception', '__cxa_throw', 'no_more_input::no_more_input()']

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
6 55 2 :

['void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

76 1115 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
6 55 2 :

['void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

76 1115 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
6 55 2 :

['void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

76 771 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
6 55 2 :

['void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)', 'immer::detail::csl::member_two , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type::type()']

76 771 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_left_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,false,false>::visit_regular ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1330
0 272 2 :

['immer::detail::rbts::node , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::ensure_mutable_relaxed_n(immer::no_transience_policy::apply >::type::edit, unsigned int)', 'void immer::detail::rbts::relaxed_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::each_right (immer::detail::rbts::dec_visitor, unsigned int)']

10 470 std::__1::tuple ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*,unsignedint,immer::detail::rbts::node ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>*>immer::detail::rbts::slice_right_mut_visitor ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,false>::visit_relaxed ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,unsignedlong,immer::no_transience_policy::apply >::type::edit) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:932

Runtime coverage analysis

Covered functions
1110
Functions that are reachable but not covered
225
Reachable functions
1886
Percentage of reachable functions covered
88.07%
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/immer/extra/fuzzer/flex-vector.cpp 9
/src/immer/immer/flex_vector.hpp 26
/src/immer/immer/detail/rbts/rrbtree.hpp 35
/src/immer/immer/detail/rbts/node.hpp 43
/src/immer/immer/detail/combine_standard_layout.hpp 11
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/extra/fuzzer/fuzzer_input.hpp 9
/src/immer/immer/heap/split_heap.hpp 3
/src/immer/immer/heap/with_data.hpp 2
/src/immer/immer/heap/unsafe_free_list_heap.hpp 3
/src/immer/immer/heap/thread_local_free_list_heap.hpp 2
/src/immer/immer/heap/free_list_heap.hpp 3
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/rbts/position.hpp 43
/src/immer/immer/detail/rbts/operations.hpp 11
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/visitor.hpp 2
/src/immer/immer/detail/rbts/rrbtree_iterator.hpp 1
/src/immer/immer/detail/iterator_facade.hpp 4
/src/immer/immer/box.hpp 2

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
decltype(auto)immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>::visit ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,unsignedlong&,immer::no_transience_policy::apply >::type::edit&>(immer::detail::rbts::slice_right_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true,true>,unsignedlong&,immer::no_transience_policy::apply >::type::edit&) /src/immer/immer/detail/rbts/position.hpp 4 ['class.std::__1::tuple *', 'struct.immer::detail::rbts::regular_sub_pos *', 'size_t *', 'struct.immer::detail::rbts::dec_visitor *'] 36 0 30 3 2 246 0 772 617
decltype(auto)immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>>::visit ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true>,unsignedlong&>(immer::detail::rbts::slice_right_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,2u,2u>,true>,unsignedlong&) /src/immer/immer/detail/rbts/position.hpp 3 ['class.std::__1::tuple *', 'struct.immer::detail::rbts::regular_sub_pos *', 'size_t *'] 24 0 24 3 2 121 0 308 229
decltype(auto)immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::visit ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>,immer::gc_transience_policy::apply >::type::edit&,immer::gc_transience_policy::apply >::type::edit&,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::gc_transience_policy::apply >::type::edit&>(immer::detail::rbts::concat_right_mut_visitor ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>,immer::gc_transience_policy::apply >::type::edit&,immer::gc_transience_policy::apply >::type::edit&,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::gc_transience_policy::apply >::type::edit&) /src/immer/immer/detail/rbts/position.hpp 7 ['struct.immer::detail::rbts::concat_center_pos *', 'struct.immer::detail::rbts::leaf_sub_pos *', 'struct.std::__1::__cxx_atomic_base_impl *', 'struct.std::__1::__cxx_atomic_base_impl *', 'struct.immer::detail::rbts::relaxed_pos *', 'struct.immer::detail::rbts::leaf_pos *', 'struct.std::__1::__cxx_atomic_base_impl *'] 24 0 43 3 2 359 0 573 175

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

Functions statically reachable by fuzzers
75.0%
4887 / 6516
Cyclomatic complexity statically reachable by fuzzers
87.0%
26848 / 31010

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/immer/extra/fuzzer/array.cpp

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=['immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::~with_capacity()', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::data()', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'LLVMFuzzerTestOneInput', 'void immer::debug_size_heap::deallocate<>(unsigned long, void*)', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::operator=(immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >&&)', 'immer::array, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::push_back(int) const &', 'immer::array, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::take(unsigned long) const &', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::take_mut(immer::no_transience_policy::apply >::type::edit, unsigned long)']

/src/immer/extra/fuzzer/array-gc.cpp

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=['immer::detail::arrays::with_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::push_back_mut(immer::gc_transience_policy::apply >::type::edit, int)', 'immer::detail::arrays::no_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::operator=(immer::detail::arrays::no_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >&&)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::arrays::with_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::dec()', 'immer::detail::arrays::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::make_n(unsigned long)', 'immer::array_transient, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::persistent() &', 'LLVMFuzzerTestOneInput', 'immer::array, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::transient() const &', 'immer::detail::arrays::no_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::push_back(int) const', 'immer::array, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::take(unsigned long) const &']

/src/immer/extra/fuzzer/set-gc.cpp

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=['immer::detail::hamts::champ, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::do_add(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned long, unsigned long, unsigned int) const', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'immer::set, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::erase_move(std::__1::integral_constant, unsigned long const&)', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::dec() const', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_remove_value(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int)', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::values() const', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::collisions() const']

/src/immer/extra/fuzzer/set.cpp

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=['immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_remove_value(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int)', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_merged(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*)', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)', 'decltype(auto) immer::detail::iterator_core_access::equal, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const&, immer::detail::hamts::champ_iterator, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const&>(immer::detail::hamts::champ_iterator, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const&, immer::detail::hamts::champ_iterator, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const&)', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::delete_deep(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int)', 'void immer::debug_size_heap::deallocate<>(unsigned long, void*)', 'LLVMFuzzerTestOneInput']

/src/immer/extra/fuzzer/set-st.cpp

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=['fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_remove_value(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_merged(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_inline(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_remove_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)', 'decltype(auto) immer::detail::iterator_core_access::equal, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const&, immer::detail::hamts::champ_iterator, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const&>(immer::detail::hamts::champ_iterator, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const&, immer::detail::hamts::champ_iterator, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const&)', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_inline(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)']

/src/immer/extra/fuzzer/set-st-str-conflict.cpp

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=['immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::copy_inner_replace_value(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned int, std::__1::basic_string, std::__1::allocator >)', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::copy_inner_replace_inline(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, unsigned int, std::__1::basic_string, std::__1::allocator >)', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::copy_inner_remove_value(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, unsigned int)', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::move_inner_replace_merged(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, unsigned int, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*)', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::move_inner_remove_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, unsigned int)', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'decltype(auto) immer::detail::iterator_core_access::equal, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u> const&, immer::detail::hamts::champ_iterator, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u> const&>(immer::detail::hamts::champ_iterator, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u> const&, immer::detail::hamts::champ_iterator, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u> const&)', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::move_inner_replace_inline(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, unsigned int, std::__1::basic_string, std::__1::allocator >)']

/src/immer/extra/fuzzer/vector-st.cpp

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=['immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::copy_leaf(immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int)', 'immer::detail::rbts::rbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::~rbtree()', 'immer::detail::rbts::rbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'void immer::detail::rbts::dec_empty_regular, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >(immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::make_path(unsigned int, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'LLVMFuzzerTestOneInput', 'immer::detail::rbts::regular_sub_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::make_regular_sub_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >(immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, unsigned long)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::push_tail_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_regular, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::regular_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'immer::detail::rbts::rbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::take(unsigned long) const']

/src/immer/extra/fuzzer/map-gc.cpp

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=['immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::dec() const', 'decltype(auto) immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::get, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::project_value_ptr, immer::detail::constantly, unsigned long>(unsigned long const&) const', 'immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::do_add(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, std::__1::pair, unsigned long, unsigned int) const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::dec() const', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_remove_value(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_collision_replace(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, std::__1::pair*, std::__1::pair)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int, std::__1::pair)']

/src/immer/extra/fuzzer/vector.cpp

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=['immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::copy_leaf(immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int)', 'immer::detail::rbts::rbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::~rbtree()', 'immer::detail::rbts::rbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'void immer::detail::rbts::dec_empty_regular, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >(immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'fuzzer_input::next(unsigned long, unsigned long)', 'LLVMFuzzerTestOneInput', 'void immer::detail::unsafe_free_list_heap_impl > >::deallocate<>(unsigned long, void*)', 'immer::detail::rbts::regular_sub_pos, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::make_regular_sub_pos, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >(immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, unsigned long)', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::push_tail_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_regular, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::regular_pos, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'immer::detail::rbts::rbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::take(unsigned long) const']

/src/immer/extra/fuzzer/map.cpp

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=['immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_insert_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, std::__1::pair)', 'decltype(auto) immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::get, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::project_value_ptr, immer::detail::constantly, unsigned long>(unsigned long const&) const', 'immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::dec() const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::deallocate_values(immer::detail::csl::member_two, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_remove_value(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_merged(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_inline(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_remove_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int)']

/src/immer/extra/fuzzer/set-st-str.cpp

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=['std::__1::enable_if, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*>), std::__1::basic_string, std::__1::allocator >*>::type immer::detail::uninitialized_copy, 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 >*)', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub, std::__1::allocator > >(std::__1::basic_string, std::__1::allocator > const&) const', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::owned(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, immer::no_transience_policy::apply >::type::edit)', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_add(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator >, unsigned long, unsigned int) const', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_check_champ(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned long, unsigned long) const', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_add(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator >, unsigned long, unsigned int) const', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_value(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, std::__1::basic_string, std::__1::allocator >)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, std::__1::basic_string, std::__1::allocator >)']

/src/immer/extra/fuzzer/vector-gc.cpp

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=['immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::copy_leaf(immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, unsigned int)', 'immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::operator=(immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>&&)', 'immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::push_back(int) const', 'immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::push_back(int) const', 'immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::push_back_mut(immer::gc_transience_policy::apply >::type::edit, int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'void immer::detail::rbts::dec_empty_regular, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >(immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*)', 'decltype(auto) immer::detail::csl::member_two, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit >::type::ownee, void>::type>::type>::type::get_ >::type::ownee>(immer::detail::csl::type_t >::type::ownee>)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::make_inner_e(immer::gc_transience_policy::apply >::type::edit)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::make_path(unsigned int, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*)']

/src/immer/extra/fuzzer/map-st.cpp

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=['decltype(auto) immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::get, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::project_value_ptr, immer::detail::constantly, unsigned long>(unsigned long const&) const', 'immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::dec() const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::deallocate_values(immer::detail::csl::member_two, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_insert_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, std::__1::pair)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_remove_value(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_merged(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_replace_inline(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_remove_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int)']

/src/immer/extra/fuzzer/map-st-str-conflict.cpp

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=['immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::dec() const', 'immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::default_value::operator()() const', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::delete_values(immer::detail::csl::member_two, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)', 'immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::operator std::__1::basic_string, std::__1::allocator > const&() const', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::move_inner_insert_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::copy_inner_replace_value(immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned int, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::copy_inner_replace_inline(immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, unsigned int, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::copy_inner_remove_value(immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned char, unsigned int)']

/src/immer/extra/fuzzer/map-st-str.cpp

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=['immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::dec() const', 'immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::default_value::operator()() const', 'std::__1::enable_if, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>), std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>::type immer::detail::uninitialized_copy, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>(std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*)', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::delete_values(immer::detail::csl::member_two, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::values_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*, unsigned int)', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub, std::__1::allocator > >(std::__1::basic_string, std::__1::allocator > const&) const', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_add(immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, unsigned long, unsigned int) const', 'immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::operator std::__1::basic_string, std::__1::allocator > const&() const', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_inner_n(unsigned int, unsigned int, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, unsigned int, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'std::__1::enable_if, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>), std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>::type immer::detail::uninitialized_move, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>(std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*)']

/src/immer/extra/fuzzer/flex-vector-bo.cpp

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=['immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::rrbtree(immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>&&)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::push_tail_mut(immer::no_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::push_tail_mut(immer::no_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::push_tail(immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int) const', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::concat(immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> const&) const', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::concat(immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> const&) const', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::get_mut(immer::no_transience_policy::apply >::type::edit, unsigned long)', 'LLVMFuzzerTestOneInput']

/src/immer/extra/fuzzer/flex-vector-gc.cpp

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=['immer::detail::rbts::full_pos, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::make_full_pos, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >(immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, unsigned int)', 'immer::detail::rbts::rrbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::operator=(immer::detail::rbts::rrbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>&&)', 'immer::detail::rbts::rrbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::push_tail_mut(immer::gc_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, unsigned int)', 'immer::detail::rbts::concat_mut_lr_r(immer::detail::rbts::rrbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>&, immer::gc_transience_policy::apply >::type::edit, immer::detail::rbts::rrbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>&, immer::gc_transience_policy::apply >::type::edit)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::sizeof_inner_n(unsigned int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'decltype(auto) immer::detail::csl::member_two, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit >::type::ownee, void>::type>::type>::type::get_ >::type::ownee>(immer::detail::csl::type_t >::type::ownee>)', 'immer::detail::rbts::rrbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::push_tail_mut(immer::gc_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, unsigned int)', 'immer::flex_vector, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::drop(unsigned long) const &', 'immer::gc_transience_policy::apply >::type::owner::operator immer::gc_transience_policy::apply >::type::edit()']

/src/immer/extra/fuzzer/flex-vector-st.cpp

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=['immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::rrbtree(immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&&)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::push_tail_mut(immer::no_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*, unsigned int)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::push_tail_mut(immer::no_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*, unsigned int)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::push_tail(immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*, unsigned int, unsigned long, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*, unsigned int) const', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::concat(immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> const&) const', 'immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::concat(immer::detail::rbts::rrbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> const&) const', 'immer::operator+(immer::flex_vector, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> const&, immer::flex_vector, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> const&)']

/src/immer/extra/fuzzer/flex-vector.cpp

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=['immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::rrbtree(immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>&&)', 'immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_tail_mut(immer::no_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int)', 'immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_tail_mut(immer::no_transience_policy::apply >::type::edit, unsigned long, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int)', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::make_inner_n_into(void*, unsigned long, unsigned int)', 'immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_tail(immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, unsigned long, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int) const', 'immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::concat(immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> const&) const', 'immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::concat(immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> const&) const', 'immer::detail::rbts::rrbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::get_mut(immer::no_transience_policy::apply >::type::edit, unsigned long)']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
voidimmer::detail::rbts::concat_merger ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>::merge_leaf ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::full_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) 31 10 32.25% []
voidimmer::detail::rbts::concat_merger ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>::merge_inner ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) 39 10 25.64% []
voidimmer::detail::rbts::concat_merger ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::merge_leaf ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) 31 10 32.25% []
voidimmer::detail::rbts::concat_merger ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::merge_inner ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) 39 10 25.64% []
voidimmer::detail::rbts::concat_merger_mut ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::merge_leaf ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::gc_transience_policy::apply >::type::edit) 52 9 17.30% []
voidimmer::detail::rbts::concat_merger_mut ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>::merge_inner ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::gc_transience_policy::apply >::type::edit) 45 9 20.0% []
voidimmer::detail::rbts::concat_merger ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>::merge_leaf ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::full_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) 31 10 32.25% []
voidimmer::detail::rbts::concat_merger ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>::merge_inner ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) 39 10 25.64% []
voidimmer::detail::rbts::concat_merger ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>::merge_leaf ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) 31 10 32.25% []
voidimmer::detail::rbts::concat_merger ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>::merge_inner ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) 39 10 25.64% []

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/immer/extra/fuzzer/flex-vector-bo.cpp ['flex-vector-bo'] ['flex-vector-bo']
/src/immer/immer/flex_vector.hpp ['flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/immer/detail/rbts/visitor.hpp ['flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/extra/fuzzer/vector.cpp ['vector'] ['vector']
/src/immer/immer/detail/arrays/no_capacity.hpp ['array-gc'] ['array-gc']
/src/immer/extra/fuzzer/map-st-str.cpp ['map-st-str'] ['map-st-str']
/usr/local/bin/../include/c++/v1/exception ['array', 'array-gc', 'set-gc', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'map-gc', 'vector', 'map', 'set-st-str', 'vector-gc', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] []
/src/immer/immer/detail/util.hpp ['array', 'array-gc', 'set-gc', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'map-gc', 'vector', 'map', 'set-st-str', 'vector-gc', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['array', 'array-gc', 'set-gc', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'map-gc', 'vector', 'map', 'set-st-str', 'vector-gc', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/immer/heap/cpp_heap.hpp ['array', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'vector', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector'] ['array', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'vector', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector']
/src/immer/immer/detail/arrays/node.hpp ['array', 'array-gc'] ['array', 'array-gc']
/src/immer/immer/set.hpp ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'set-st-str'] ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'set-st-str']
/src/immer/immer/heap/split_heap.hpp ['vector', 'flex-vector'] ['vector', 'flex-vector']
/src/immer/extra/fuzzer/set-st-str.cpp ['set-st-str'] ['set-st-str']
/src/immer/immer/detail/rbts/position.hpp ['vector-st', 'vector', 'vector-gc', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['vector-st', 'vector', 'vector-gc', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/extra/fuzzer/map-gc.cpp ['map-gc'] ['map-gc']
/src/immer/extra/fuzzer/map-st-str-conflict.cpp ['map-st-str-conflict'] ['map-st-str-conflict']
/src/immer/immer/detail/combine_standard_layout.hpp ['array', 'array-gc', 'set-gc', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'map-gc', 'vector', 'map', 'set-st-str', 'vector-gc', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['array', 'array-gc', 'set-gc', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'map-gc', 'vector', 'map', 'set-st-str', 'vector-gc', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/immer/detail/hamts/bits.hpp ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str'] ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str']
/src/immer/extra/fuzzer/array.cpp ['array'] ['array']
/src/immer/immer/detail/rbts/rbtree.hpp ['vector-st', 'vector', 'vector-gc'] ['vector-st', 'vector', 'vector-gc']
/src/immer/immer/detail/rbts/operations.hpp ['vector-st', 'vector', 'vector-gc', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['vector-st', 'vector', 'vector-gc', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/extra/fuzzer/set-gc.cpp ['set-gc'] ['set-gc']
/src/immer/extra/fuzzer/set-st.cpp ['set-st'] ['set-st']
/src/immer/immer/map.hpp ['map-gc', 'map', 'map-st', 'map-st-str-conflict', 'map-st-str'] ['map-gc', 'map', 'map-st', 'map-st-str-conflict', 'map-st-str']
/src/immer/immer/heap/with_data.hpp ['vector', 'flex-vector'] ['vector', 'flex-vector']
/src/immer/immer/heap/unsafe_free_list_heap.hpp ['vector', 'flex-vector'] ['vector', 'flex-vector']
/src/immer/immer/vector_transient.hpp ['vector-gc'] ['vector-gc']
/src/immer/extra/fuzzer/map.cpp ['map'] ['map']
/src/immer/immer/flex_vector_transient.hpp ['flex-vector-gc'] ['flex-vector-gc']
/src/immer/immer/refcount/unsafe_refcount_policy.hpp ['set-st', 'set-st-str-conflict', 'vector-st', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st'] ['set-st', 'set-st-str-conflict', 'vector-st', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st']
/src/immer/immer/heap/thread_local_free_list_heap.hpp ['vector', 'flex-vector'] ['vector', 'flex-vector']
/src/immer/immer/algorithm.hpp ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str'] []
/src/immer/immer/refcount/no_refcount_policy.hpp ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc'] ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc']
/src/immer/immer/transience/no_transience_policy.hpp ['array', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'vector', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector'] ['array', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'vector', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector']
/src/immer/immer/detail/rbts/node.hpp ['vector-st', 'vector', 'vector-gc', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['vector-st', 'vector', 'vector-gc', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/immer/box.hpp ['map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector'] ['map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector']
/src/immer/immer/transience/gc_transience_policy.hpp ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc'] ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc']
/src/immer/immer/heap/gc_heap.hpp ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc'] ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc']
/src/immer/extra/fuzzer/flex-vector.cpp ['flex-vector'] ['flex-vector']
/src/immer/immer/detail/arrays/with_capacity.hpp ['array', 'array-gc'] ['array', 'array-gc']
/src/immer/extra/fuzzer/array-gc.cpp ['array-gc'] ['array-gc']
/src/immer/extra/fuzzer/set-st-str-conflict.cpp ['set-st-str-conflict'] ['set-st-str-conflict']
/src/immer/immer/heap/free_list_heap.hpp ['vector', 'flex-vector'] ['vector', 'flex-vector']
/src/immer/immer/detail/hamts/champ_iterator.hpp ['set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str'] ['set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str']
/src/immer/immer/vector.hpp ['vector-st', 'vector', 'vector-gc'] ['vector-st', 'vector', 'vector-gc']
/src/immer/immer/detail/rbts/rrbtree.hpp ['flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/immer/detail/rbts/rrbtree_iterator.hpp ['flex-vector-bo', 'flex-vector-st', 'flex-vector'] ['flex-vector-bo', 'flex-vector-st', 'flex-vector']
/src/immer/extra/fuzzer/vector-st.cpp ['vector-st'] ['vector-st']
/src/immer/immer/array.hpp ['array', 'array-gc'] ['array', 'array-gc']
/src/immer/immer/detail/hamts/node.hpp ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str'] ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str']
/src/immer/immer/detail/hamts/champ.hpp ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str'] ['set-gc', 'set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str']
/src/immer/extra/fuzzer/map-st.cpp ['map-st'] ['map-st']
/src/immer/immer/heap/debug_size_heap.hpp ['array', 'set', 'vector', 'map', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector'] ['array', 'set', 'vector', 'map', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector']
/src/immer/extra/fuzzer/fuzzer_input.hpp ['array', 'array-gc', 'set-gc', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'map-gc', 'vector', 'map', 'set-st-str', 'vector-gc', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector'] ['array', 'array-gc', 'set-gc', 'set', 'set-st', 'set-st-str-conflict', 'vector-st', 'map-gc', 'vector', 'map', 'set-st-str', 'vector-gc', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-gc', 'flex-vector-st', 'flex-vector']
/src/immer/immer/array_transient.hpp ['array-gc'] ['array-gc']
/src/immer/extra/fuzzer/set.cpp ['set'] ['set']
/src/immer/extra/fuzzer/flex-vector-st.cpp ['flex-vector-st'] ['flex-vector-st']
/src/immer/extra/fuzzer/vector-gc.cpp ['vector-gc'] ['vector-gc']
/src/immer/immer/refcount/refcount_policy.hpp ['array', 'set', 'vector', 'map', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector'] ['array', 'set', 'vector', 'map', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector']
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc'] ['array-gc', 'set-gc', 'map-gc', 'vector-gc', 'flex-vector-gc']
/src/immer/immer/detail/iterator_facade.hpp ['set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector'] ['set', 'set-st', 'set-st-str-conflict', 'map-gc', 'map', 'set-st-str', 'map-st', 'map-st-str-conflict', 'map-st-str', 'flex-vector-bo', 'flex-vector-st', 'flex-vector']
/src/immer/extra/fuzzer/flex-vector-gc.cpp ['flex-vector-gc'] ['flex-vector-gc']

Directories in report

Directory
/src/immer/immer/detail/rbts/
/src/immer/immer/
/src/immer/immer/detail/arrays/
/src/immer/extra/fuzzer/
/src/immer/immer/detail/hamts/
/src/immer/immer/refcount/
/src/immer/immer/heap/
/src/immer/immer/transience/
/usr/local/bin/../include/c++/v1/
/src/immer/immer/detail/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
array fuzzerLogFile-0-E9p7oLBcVR.data fuzzerLogFile-0-E9p7oLBcVR.data.yaml array.covreport
array-gc fuzzerLogFile-0-w183HXQddT.data fuzzerLogFile-0-w183HXQddT.data.yaml array-gc.covreport
set-gc fuzzerLogFile-0-0KkhPYA5iE.data fuzzerLogFile-0-0KkhPYA5iE.data.yaml set-gc.covreport
set fuzzerLogFile-0-s8R5xP177y.data fuzzerLogFile-0-s8R5xP177y.data.yaml set.covreport
set-st fuzzerLogFile-0-aMkjoD0VfT.data fuzzerLogFile-0-aMkjoD0VfT.data.yaml set-st.covreport
set-st-str-conflict fuzzerLogFile-0-yWiVm1MGz8.data fuzzerLogFile-0-yWiVm1MGz8.data.yaml set-st-str-conflict.covreport
vector-st fuzzerLogFile-0-o58KTwOcWs.data fuzzerLogFile-0-o58KTwOcWs.data.yaml vector-st.covreport
map-gc fuzzerLogFile-0-PZnNXpeyWG.data fuzzerLogFile-0-PZnNXpeyWG.data.yaml map-gc.covreport
vector fuzzerLogFile-0-pOPpug7r80.data fuzzerLogFile-0-pOPpug7r80.data.yaml vector.covreport
map fuzzerLogFile-0-38UCAKpiek.data fuzzerLogFile-0-38UCAKpiek.data.yaml map.covreport
set-st-str fuzzerLogFile-0-ZSMLc77dxM.data fuzzerLogFile-0-ZSMLc77dxM.data.yaml set-st-str.covreport
vector-gc fuzzerLogFile-0-KCFNGiH26y.data fuzzerLogFile-0-KCFNGiH26y.data.yaml vector-gc.covreport
map-st fuzzerLogFile-0-5FKUuKOqVL.data fuzzerLogFile-0-5FKUuKOqVL.data.yaml map-st.covreport
map-st-str-conflict fuzzerLogFile-0-M80DGXBOOT.data fuzzerLogFile-0-M80DGXBOOT.data.yaml map-st-str-conflict.covreport
map-st-str fuzzerLogFile-0-FSlmTBHAag.data fuzzerLogFile-0-FSlmTBHAag.data.yaml map-st-str.covreport
flex-vector-bo fuzzerLogFile-0-vCzAgBCDPB.data fuzzerLogFile-0-vCzAgBCDPB.data.yaml flex-vector-bo.covreport
flex-vector-gc fuzzerLogFile-0-iKBQ5jqNJX.data fuzzerLogFile-0-iKBQ5jqNJX.data.yaml flex-vector-gc.covreport
flex-vector-st fuzzerLogFile-0-N0dunEwPS3.data fuzzerLogFile-0-N0dunEwPS3.data.yaml flex-vector-st.covreport
flex-vector fuzzerLogFile-0-2bbLkjwXOW.data fuzzerLogFile-0-2bbLkjwXOW.data.yaml flex-vector.covreport