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 250 51 11 14 797 418 set-gc.cpp
set /src/immer/extra/fuzzer/set.cpp 286 65 12 16 1066 506 set.cpp
map-gc /src/immer/extra/fuzzer/map-gc.cpp 314 63 11 16 1111 680 map-gc.cpp
set-st /src/immer/extra/fuzzer/set-st.cpp 306 66 12 15 1268 594 set-st.cpp
set-st-str /src/immer/extra/fuzzer/set-st-str.cpp 314 66 12 15 1695 1059 set-st-str.cpp
vector /src/immer/extra/fuzzer/vector.cpp 446 138 13 19 1411 775 vector.cpp
vector-st /src/immer/extra/fuzzer/vector-st.cpp 417 138 13 13 1288 732 vector-st.cpp
map-st /src/immer/extra/fuzzer/map-st.cpp 357 64 12 15 1542 764 map-st.cpp
vector-gc /src/immer/extra/fuzzer/vector-gc.cpp 471 143 13 15 1404 809 vector-gc.cpp
set-st-str-conflict /src/immer/extra/fuzzer/set-st-str-conflict.cpp 316 66 12 15 1698 1061 set-st-str-conflict.cpp
map /src/immer/extra/fuzzer/map.cpp 381 64 12 16 1709 867 map.cpp
map-st-str /src/immer/extra/fuzzer/map-st-str.cpp 392 77 12 18 2358 1536 map-st-str.cpp
map-st-str-conflict /src/immer/extra/fuzzer/map-st-str-conflict.cpp 394 77 12 18 2361 1538 map-st-str-conflict.cpp
flex-vector-bo /src/immer/extra/fuzzer/flex-vector-bo.cpp 1832 355 20 19 8204 4672 flex-vector-bo.cpp
flex-vector-st /src/immer/extra/fuzzer/flex-vector-st.cpp 1852 355 20 19 8289 4719 flex-vector-st.cpp
flex-vector /src/immer/extra/fuzzer/flex-vector.cpp 1883 354 21 23 8432 4766 flex-vector.cpp
flex-vector-gc /src/immer/extra/fuzzer/flex-vector-gc.cpp 1899 335 20 16 8196 4702 flex-vector-gc.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 63 48.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 66 51.1%
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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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 89 48.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 95 51.6%
All colors 184 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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 148 37.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 247 62.5%
All colors 395 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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

Runtime coverage analysis

Covered functions
140
Functions that are reachable but not covered
79
Reachable functions
250
Percentage of reachable functions covered
68.4%
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 17
/src/immer/immer/detail/hamts/node.hpp 47
/src/immer/immer/heap/gc_heap.hpp 2
/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/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 138 25.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 407 74.6%
All colors 545 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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

Runtime coverage analysis

Covered functions
186
Functions that are reachable but not covered
43
Reachable functions
286
Percentage of reachable functions covered
84.97%
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 17
/src/immer/immer/detail/hamts/node.hpp 57
/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 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/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-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 240 44.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 303 55.8%
All colors 543 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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

Runtime coverage analysis

Covered functions
183
Functions that are reachable but not covered
106
Reachable functions
314
Percentage of reachable functions covered
66.24%
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 22
/src/immer/immer/detail/hamts/node.hpp 45
/src/immer/immer/heap/gc_heap.hpp 2
/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/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: 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 166 23.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 529 76.1%
All colors 695 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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

Runtime coverage analysis

Covered functions
197
Functions that are reachable but not covered
43
Reachable functions
306
Percentage of reachable functions covered
85.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/set-st.cpp 4
/src/immer/immer/set.hpp 11
/src/immer/immer/detail/hamts/champ.hpp 23
/src/immer/immer/detail/hamts/node.hpp 61
/src/immer/immer/heap/cpp_heap.hpp 2
/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/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 345 43.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 449 56.5%
All colors 794 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>::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 >)', '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>::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_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>::collision_count() const']

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:641
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>::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 >*)', '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>::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 >*)']

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:1345
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>::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_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()']

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:568
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>::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>::collisions()']

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:1201
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:1085
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:1008
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:979
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:199
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:88
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:113
8 8 3 :

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

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:373

Runtime coverage analysis

Covered functions
185
Functions that are reachable but not covered
69
Reachable functions
314
Percentage of reachable functions covered
78.03%
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 25
/src/immer/immer/detail/hamts/node.hpp 60
/src/immer/immer/heap/cpp_heap.hpp 2
/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/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

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+ 242 66.8%
All colors 362 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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: 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 112 35.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 207 64.8%
All colors 319 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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-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 297 34.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 573 65.8%
All colors 870 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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

Runtime coverage analysis

Covered functions
221
Functions that are reachable but not covered
66
Reachable functions
357
Percentage of reachable functions covered
81.51%
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 29
/src/immer/immer/detail/hamts/node.hpp 64
/src/immer/immer/heap/cpp_heap.hpp 2
/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/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.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 216 59.5%
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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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 , 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>*>&&)', '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>*&)']

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: 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 252 31.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 543 68.3%
All colors 795 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
52 84 7 :

['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)', '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>::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)', '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>::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>::nodemap() const']

52 122 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:1443
52 60 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>::datamap() 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::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>::make_inner_n(unsigned int, unsigned char, std::__1::basic_string , std::__1::allocator >)']

52 66 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:1258
8 8 3 :

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

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:373

Runtime coverage analysis

Covered functions
199
Functions that are reachable but not covered
47
Reachable functions
316
Percentage of reachable functions covered
85.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-str-conflict.cpp 4
/src/immer/immer/set.hpp 12
/src/immer/immer/detail/hamts/champ.hpp 25
/src/immer/immer/detail/hamts/node.hpp 60
/src/immer/immer/heap/cpp_heap.hpp 2
/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/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

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 378 39.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 575 60.3%
All colors 953 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_throw', 'no_more_input::no_more_input()', '__cxa_allocate_exception']

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

Runtime coverage analysis

Covered functions
233
Functions that are reachable but not covered
86
Reachable functions
381
Percentage of reachable functions covered
77.43%
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 34
/src/immer/immer/detail/hamts/node.hpp 64
/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 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/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

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 540 50.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 523 49.2%
All colors 1063 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>::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>::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>::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> > >)', '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> > >)']

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:641
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>::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', '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>*)', '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>::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> > >*)']

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:1345
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>::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>::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>::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>::collision_count() const']

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:568
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>::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>::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>::collision_count() const']

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:1201
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:1008
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:979
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:1085
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:199
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:88
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:113
8 8 3 :

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

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:373

Runtime coverage analysis

Covered functions
233
Functions that are reachable but not covered
90
Reachable functions
392
Percentage of reachable functions covered
77.04%
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 31
/src/immer/immer/detail/hamts/node.hpp 64
/src/immer/immer/heap/cpp_heap.hpp 2
/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/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: 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 436 40.9%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 628 59.0%
All colors 1064 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
60 92 7 :

['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)', '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', '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(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)']

60 130 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:1443
60 68 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>, 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> > >)', '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>::datamap() const', '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&)']

60 74 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:1258
8 8 3 :

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

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:373

Runtime coverage analysis

Covered functions
247
Functions that are reachable but not covered
68
Reachable functions
394
Percentage of reachable functions covered
82.74%
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 31
/src/immer/immer/detail/hamts/node.hpp 64
/src/immer/immer/heap/cpp_heap.hpp 2
/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/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: 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 240 30.7%
gold [1:9] 2 0.25%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 539 69.0%
All colors 781 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 :

['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> >&)', '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&&)']

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:1870
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:1870
229 229 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::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&&)', '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> >&)']

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:1870
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:1870
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:1870
171 175 2 :

['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&)', '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)']

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:1833
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
256
Reachable functions
1832
Percentage of reachable functions covered
86.03%
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 10
/src/immer/immer/flex_vector.hpp 26
/src/immer/immer/detail/rbts/rrbtree.hpp 36
/src/immer/immer/detail/rbts/node.hpp 43
/src/immer/immer/detail/combine_standard_layout.hpp 8
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 3
/src/immer/immer/detail/util.hpp 10
/src/immer/extra/fuzzer/fuzzer_input.hpp 9
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/rbts/position.hpp 48
/src/immer/immer/detail/rbts/operations.hpp 12
/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-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 255 31.7%
gold [1:9] 25 3.11%
yellow [10:29] 8 0.99%
greenyellow [30:49] 15 1.86%
lawngreen 50+ 500 62.2%
All colors 803 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
726 730 2 :

['immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::make_relaxed_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, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_t*)', 'decltype(auto) immer::detail::rbts::relaxed_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>, true, false>, unsigned long&, immer::no_transience_policy::apply >::type::edit&>(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>, unsigned long&, immer::no_transience_policy::apply >::type::edit&)']

726 730 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::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,true,false>,unsignedlong&,immer::no_transience_policy::apply >::type::edit&>(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::slice_left_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,true,false>,unsignedlong&,immer::no_transience_policy::apply >::type::edit&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1833
476 801 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::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&&)', '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> >&)']

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:1870
335 590 2 :

['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> >&)', '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&&)']

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:1870
261 261 2 :

['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> >&)', '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&&)']

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:1870
261 261 2 :

['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> >&)', '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&&)']

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:1870
261 261 2 :

['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> >&)', '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&&)']

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:1870
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:1833
152 156 2 :

['immer::detail::rbts::relaxed_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> > immer::detail::rbts::make_relaxed_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, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_t*)', 'decltype(auto) immer::detail::rbts::relaxed_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::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, 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::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, unsigned long&)']

152 156 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,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::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,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,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::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,unsignedlong&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1833
55 59 2 :

['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::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor::this_aux_t, unsigned int&, 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::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, unsigned long&)', '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)']

55 59 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::this_aux_t,unsignedint&,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::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,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::this_aux_t,unsignedint&,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::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,unsignedlong&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1833
49 53 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::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, unsigned long&>(immer::detail::rbts::equals_visitor, immer::detail::rbts::full_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, immer::detail::rbts::rrbtree_iterator , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>&, unsigned long&)']

49 53 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,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,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,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,unsignedlong&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1833
20 248 9 :

['__clang_call_terminate', 'immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::make_inner_e(immer::no_transience_policy::apply >::type::edit)', 'immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::delete_inner_e(immer::detail::rbts::node , 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>::do_copy_inner(immer::detail::rbts::node , 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)', '__cxa_rethrow', 'decltype(auto) immer::detail::rbts::regular_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::last_oh , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, false>, immer::no_transience_policy::apply >::type::edit&, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*&>(immer::detail::rbts::push_tail_mut_visitor , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, false>, unsigned int, immer::no_transience_policy::apply >::type::edit&, immer::detail::rbts::node , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*&)', '__cxa_end_catch', 'decltype(auto) immer::detail::rbts::regular_pos , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::visit (immer::detail::rbts::dec_visitor)', '__cxa_begin_catch']

20 324 immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*immer::detail::rbts::push_tail_mut_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,true>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::regular_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::no_transience_policy::apply >::type::edit,immer::detail::rbts::node ,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:746
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
1084
Functions that are reachable but not covered
241
Reachable functions
1852
Percentage of reachable functions covered
86.99%
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 10
/src/immer/immer/flex_vector.hpp 26
/src/immer/immer/detail/rbts/rrbtree.hpp 36
/src/immer/immer/detail/rbts/node.hpp 47
/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
/src/immer/extra/fuzzer/fuzzer_input.hpp 9
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/heap/cpp_heap.hpp 3
/src/immer/immer/detail/rbts/position.hpp 48
/src/immer/immer/detail/rbts/operations.hpp 12
/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 253 29.9%
gold [1:9] 4 0.47%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 589 69.6%
All colors 846 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:1870
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:1870
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:1870
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:1870
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::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> >&)']

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:1870
171 175 2 :

['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)', '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&)']

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:1833
8 8 3 :

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

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
222
Reachable functions
1883
Percentage of reachable functions covered
88.21%
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 10
/src/immer/immer/flex_vector.hpp 26
/src/immer/immer/detail/rbts/rrbtree.hpp 36
/src/immer/immer/detail/rbts/node.hpp 47
/src/immer/immer/detail/combine_standard_layout.hpp 11
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/src/immer/extra/fuzzer/fuzzer_input.hpp 9
/usr/local/bin/../include/c++/v1/exception 1
/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 48
/src/immer/immer/detail/rbts/operations.hpp 12
/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

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 312 34.6%
gold [1:9] 2 0.22%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 587 65.1%
All colors 901 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:2333
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:1870
361 598 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::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::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&&)']

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:2333
359 638 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::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&&)', '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> >&)']

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:1870
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::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> >&)', '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::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:1870
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:1870
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:1870
239 239 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::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> >&)', '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&&)']

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:2333
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:2333
239 239 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::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> >&)', '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&&)']

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:2333
8 8 3 :

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

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
259
Reachable functions
1899
Percentage of reachable functions covered
86.36%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/flex-vector-gc.cpp 12
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/flex_vector.hpp 11
/src/immer/immer/detail/rbts/rrbtree.hpp 36
/src/immer/immer/detail/rbts/node.hpp 51
/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
/src/immer/immer/flex_vector_transient.hpp 12
/src/immer/immer/heap/gc_heap.hpp 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 11
/usr/local/bin/../include/c++/v1/exception 1
/src/immer/immer/detail/rbts/position.hpp 46
/src/immer/immer/detail/rbts/operations.hpp 15
/src/immer/immer/detail/rbts/visitor.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 *'] 11 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 *'] 5 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 *'] 11 0 43 3 2 359 0 573 175
decltype(auto)immer::detail::rbts::full_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::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::concat_right_visitor ,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>>&) /src/immer/immer/detail/rbts/position.hpp 4 ['struct.immer::detail::rbts::concat_center_pos *', 'struct.immer::detail::rbts::full_pos *', 'struct.immer::detail::rbts::relaxed_pos *', 'struct.immer::detail::rbts::leaf_pos *'] 11 0 28 3 2 338 0 447 124
decltype(auto)immer::detail::rbts::full_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::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::concat_right_visitor ,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>>&) /src/immer/immer/detail/rbts/position.hpp 4 ['struct.immer::detail::rbts::concat_center_pos *', 'struct.immer::detail::rbts::full_pos *', 'struct.immer::detail::rbts::relaxed_pos *', 'struct.immer::detail::rbts::leaf_pos *'] 11 0 28 3 2 358 0 479 124
decltype(auto)immer::detail::rbts::full_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::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::concat_right_visitor ,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>>&) /src/immer/immer/detail/rbts/position.hpp 4 ['struct.immer::detail::rbts::concat_center_pos *', 'struct.immer::detail::rbts::full_pos *', 'struct.immer::detail::rbts::relaxed_pos *', 'struct.immer::detail::rbts::leaf_pos *'] 12 0 28 3 2 395 0 532 124
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::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::concat_right_visitor ,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>>&) /src/immer/immer/detail/rbts/position.hpp 4 ['struct.immer::detail::rbts::concat_center_pos *', 'struct.immer::detail::rbts::leaf_sub_pos *', 'struct.immer::detail::rbts::relaxed_pos *', 'struct.immer::detail::rbts::leaf_pos *'] 11 0 28 3 2 380 0 503 111

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

Functions statically reachable by fuzzers
77.1%
5011/6493
Cyclomatic complexity statically reachable by fuzzers
88.1%
27281 / 30960

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

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% []
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_visitor ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,false>::visit_regular ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::regular_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,unsignedlong) 36 19 52.77% ['flex-vector-st']
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% []
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_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) 65 33 50.76% ['flex-vector-st']
immer::detail::rbts::concat_mut_r(immer::detail::rbts::rrbtree ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>const&,immer::detail::rbts::rrbtree ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,immer::no_transience_policy::apply >::type::edit) 123 65 52.84% ['flex-vector-st']
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% []
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% []

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

Directories in report

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

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-PNmagGpfEK.data fuzzerLogFile-0-PNmagGpfEK.data.yaml array.covreport
array-gc fuzzerLogFile-0-2uI0fH7JLA.data fuzzerLogFile-0-2uI0fH7JLA.data.yaml array-gc.covreport
set-gc fuzzerLogFile-0-SnD7NxtzpH.data fuzzerLogFile-0-SnD7NxtzpH.data.yaml set-gc.covreport
set fuzzerLogFile-0-T2LQ6WH2mF.data fuzzerLogFile-0-T2LQ6WH2mF.data.yaml set.covreport
map-gc fuzzerLogFile-0-oyBmKuTbpT.data fuzzerLogFile-0-oyBmKuTbpT.data.yaml map-gc.covreport
set-st fuzzerLogFile-0-djWaPEg4Y3.data fuzzerLogFile-0-djWaPEg4Y3.data.yaml set-st.covreport
set-st-str fuzzerLogFile-0-CrVoWjpoO0.data fuzzerLogFile-0-CrVoWjpoO0.data.yaml set-st-str.covreport
vector fuzzerLogFile-0-EDJT5bGE2t.data fuzzerLogFile-0-EDJT5bGE2t.data.yaml vector.covreport
vector-st fuzzerLogFile-0-DksJp9RYKp.data fuzzerLogFile-0-DksJp9RYKp.data.yaml vector-st.covreport
map-st fuzzerLogFile-0-yAHY4Nuz44.data fuzzerLogFile-0-yAHY4Nuz44.data.yaml map-st.covreport
vector-gc fuzzerLogFile-0-ffH0U9ohpV.data fuzzerLogFile-0-ffH0U9ohpV.data.yaml vector-gc.covreport
set-st-str-conflict fuzzerLogFile-0-zwBtkwjhVv.data fuzzerLogFile-0-zwBtkwjhVv.data.yaml set-st-str-conflict.covreport
map fuzzerLogFile-0-l3h1TV37HC.data fuzzerLogFile-0-l3h1TV37HC.data.yaml map.covreport
map-st-str fuzzerLogFile-0-mctcA02cpd.data fuzzerLogFile-0-mctcA02cpd.data.yaml map-st-str.covreport
map-st-str-conflict fuzzerLogFile-0-0eSKhGU0lI.data fuzzerLogFile-0-0eSKhGU0lI.data.yaml map-st-str-conflict.covreport
flex-vector-bo fuzzerLogFile-0-v4wzagH9bf.data fuzzerLogFile-0-v4wzagH9bf.data.yaml flex-vector-bo.covreport
flex-vector-st fuzzerLogFile-0-dtdOtBnlTW.data fuzzerLogFile-0-dtdOtBnlTW.data.yaml flex-vector-st.covreport
flex-vector fuzzerLogFile-0-PH0Oagupge.data fuzzerLogFile-0-PH0Oagupge.data.yaml flex-vector.covreport
flex-vector-gc fuzzerLogFile-0-QMhbexePHg.data fuzzerLogFile-0-QMhbexePHg.data.yaml flex-vector-gc.covreport