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 62 58 11 12 107 87 array.cpp
array-gc /src/immer/extra/fuzzer/array-gc.cpp 101 74 10 14 172 157 array-gc.cpp
set-gc /src/immer/extra/fuzzer/set-gc.cpp 113 87 12 14 232 134 set-gc.cpp
set /src/immer/extra/fuzzer/set.cpp 101 129 12 16 228 115 set.cpp
map-gc /src/immer/extra/fuzzer/map-gc.cpp 113 121 12 16 232 134 map-gc.cpp
set-st /src/immer/extra/fuzzer/set-st.cpp 99 141 12 15 215 113 set-st.cpp
vector /src/immer/extra/fuzzer/vector.cpp 220 217 26 19 533 261 vector.cpp
map-st /src/immer/extra/fuzzer/map-st.cpp 99 157 12 15 215 113 map-st.cpp
vector-st /src/immer/extra/fuzzer/vector-st.cpp 191 217 26 13 417 218 vector-st.cpp
vector-gc /src/immer/extra/fuzzer/vector-gc.cpp 229 226 25 15 474 269 vector-gc.cpp
set-st-str /src/immer/extra/fuzzer/set-st-str.cpp 100 145 12 15 224 116 set-st-str.cpp
set-st-str-conflict /src/immer/extra/fuzzer/set-st-str-conflict.cpp 102 145 12 15 227 118 set-st-str-conflict.cpp
map /src/immer/extra/fuzzer/map.cpp 101 160 12 16 228 115 map.cpp
map-st-str /src/immer/extra/fuzzer/map-st-str.cpp 100 188 13 18 224 116 map-st-str.cpp
map-st-str-conflict /src/immer/extra/fuzzer/map-st-str-conflict.cpp 102 188 13 18 227 118 map-st-str-conflict.cpp
flex-vector-bo /src/immer/extra/fuzzer/flex-vector-bo.cpp 69 1163 61 19 146 94 flex-vector-bo.cpp
flex-vector-st /src/immer/extra/fuzzer/flex-vector-st.cpp 69 1173 62 19 146 94 flex-vector-st.cpp
flex-vector /src/immer/extra/fuzzer/flex-vector.cpp 69 1188 61 23 150 94 flex-vector.cpp
flex-vector-gc /src/immer/extra/fuzzer/flex-vector-gc.cpp 284 1071 61 16 625 342 flex-vector-gc.cpp

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined 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

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 43 22.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 152 77.9%
All colors 195 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
82
Functions that are reachable but not covered
12
Reachable functions
62
Percentage of reachable functions covered
80.65%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/array.cpp 10
/src/immer/immer/array.hpp 14
/src/immer/immer/detail/arrays/with_capacity.hpp 18
/src/immer/immer/detail/arrays/node.hpp 12
/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 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 10
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/transience/no_transience_policy.hpp 2

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 62 22.5%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 213 77.4%
All colors 275 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
107
Functions that are reachable but not covered
31
Reachable functions
101
Percentage of reachable functions covered
69.31%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/array-gc.cpp 14
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/array.hpp 9
/src/immer/immer/detail/arrays/no_capacity.hpp 12
/src/immer/immer/detail/arrays/node.hpp 12
/src/immer/immer/heap/gc_heap.hpp 3
/src/immer/immer/detail/combine_standard_layout.hpp 11
/src/immer/immer/refcount/no_refcount_policy.hpp 4
/src/immer/immer/transience/gc_transience_policy.hpp 10
/src/immer/immer/detail/util.hpp 3
/src/immer/immer/array_transient.hpp 9
/src/immer/immer/detail/arrays/with_capacity.hpp 17
/src/immer/extra/fuzzer/fuzzer_input.hpp 12
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

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 178 29.1%
gold [1:9] 1 0.16%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 431 70.6%
All colors 610 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
142
Functions that are reachable but not covered
39
Reachable functions
113
Percentage of reachable functions covered
65.49%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/set-gc.cpp 8
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/set.hpp 13
/src/immer/immer/detail/hamts/champ.hpp 45
/src/immer/immer/detail/hamts/node.hpp 51
/src/immer/immer/detail/combine_standard_layout.hpp 8
/src/immer/immer/refcount/no_refcount_policy.hpp 3
/src/immer/immer/transience/gc_transience_policy.hpp 2
/src/immer/immer/detail/util.hpp 5
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/gc_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/algorithm.hpp 6

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 164 20.3%
gold [1:9] 1 0.12%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 642 79.5%
All colors 807 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
188
Functions that are reachable but not covered
15
Reachable functions
101
Percentage of reachable functions covered
85.15%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/set.cpp 7
/src/immer/immer/set.hpp 13
/src/immer/immer/detail/hamts/champ.hpp 45
/src/immer/immer/detail/hamts/node.hpp 66
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 6
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 204 25.5%
gold [1:9] 1 0.12%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 595 74.3%
All colors 800 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
185
Functions that are reachable but not covered
39
Reachable functions
113
Percentage of reachable functions covered
65.49%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/map-gc.cpp 11
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/map.hpp 30
/src/immer/immer/detail/hamts/champ.hpp 52
/src/immer/immer/detail/hamts/node.hpp 51
/src/immer/immer/detail/combine_standard_layout.hpp 8
/src/immer/immer/refcount/no_refcount_policy.hpp 3
/src/immer/immer/transience/gc_transience_policy.hpp 2
/src/immer/immer/detail/util.hpp 8
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/gc_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 177 18.4%
gold [1:9] 1 0.10%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 779 81.4%
All colors 957 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
199
Functions that are reachable but not covered
15
Reachable functions
99
Percentage of reachable functions covered
84.85%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/set-st.cpp 7
/src/immer/immer/set.hpp 15
/src/immer/immer/detail/hamts/champ.hpp 52
/src/immer/immer/detail/hamts/node.hpp 69
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 7
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 197 19.3%
gold [1:9] 2 0.19%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 819 80.4%
All colors 1018 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 154 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)']

8 406 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 154 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)']

8 400 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 115 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)']

8 367 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 115 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)']

8 367 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 115 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)']

8 361 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 115 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)']

8 361 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
18
Reachable functions
220
Percentage of reachable functions covered
91.82%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/vector.cpp 9
/src/immer/immer/vector.hpp 14
/src/immer/immer/detail/rbts/rbtree.hpp 22
/src/immer/immer/detail/rbts/node.hpp 37
/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 11
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 4
/src/immer/extra/fuzzer/fuzzer_input.hpp 10
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/position.hpp 155
/src/immer/immer/detail/rbts/operations.hpp 58

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 219 19.0%
gold [1:9] 1 0.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 929 80.8%
All colors 1149 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
223
Functions that are reachable but not covered
15
Reachable functions
99
Percentage of reachable functions covered
84.85%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/map-st.cpp 9
/src/immer/immer/map.hpp 28
/src/immer/immer/detail/hamts/champ.hpp 58
/src/immer/immer/detail/hamts/node.hpp 69
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 196 20.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 777 79.8%
All colors 973 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 121 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)']

8 307 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 121 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)']

8 301 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 82 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)']

8 268 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 82 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)']

8 268 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 82 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)']

8 262 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 82 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)']

8 262 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[abi:ne180100] , 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>*&)', '_ZNSt3__15tupleIJjPN5immer6detail4rbts4nodeIiNS1_13memory_policyINS1_11heap_policyINS1_8cpp_heapEEENS1_22unsafe_refcount_policyENS1_14no_lock_policyENS1_20no_transience_policyELb0ELb1EEELj2ELj2EEEjSE_EEC2B8ne180100IJjDnjSE_ETnNS_9enable_ifIXsr4_AndINSF_26_EnableCtorFromUTypesTupleIONS0_IJDpT_EEEu14__remove_cvrefISM_EvEEEE5valueEiE4typeELi0EEESM_']

8 316 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
17
Reachable functions
191
Percentage of reachable functions covered
91.1%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/vector-st.cpp 9
/src/immer/immer/vector.hpp 14
/src/immer/immer/detail/rbts/rbtree.hpp 22
/src/immer/immer/detail/rbts/node.hpp 37
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/combine_standard_layout.hpp 11
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 4
/src/immer/extra/fuzzer/fuzzer_input.hpp 10
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/position.hpp 155
/src/immer/immer/detail/rbts/operations.hpp 58

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 279 27.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 753 72.9%
All colors 1032 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 131 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)']

8 335 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 131 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)']

8 329 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 92 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)']

8 296 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 92 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)']

8 296 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 92 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)']

8 290 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 92 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)']

8 290 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 :

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

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 :

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

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 :

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

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 :

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

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 :

['_ZNSt3__15tupleIJjPN5immer6detail4rbts4nodeIiNS1_13memory_policyINS1_11heap_policyINS1_7gc_heapEEENS1_18no_refcount_policyENS1_15spinlock_policyENS1_20gc_transience_policyELb0ELb0EEELj2ELj2EEEjSE_EEC2B8ne180100IJjDnjSE_ETnNS_9enable_ifIXsr4_AndINSF_26_EnableCtorFromUTypesTupleIONS0_IJDpT_EEEu14__remove_cvrefISM_EvEEEE5valueEiE4typeELi0EEESM_', '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[abi:ne180100] , 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>*&)']

8 344 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
48
Reachable functions
229
Percentage of reachable functions covered
79.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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/vector-gc.cpp 13
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/vector.hpp 9
/src/immer/immer/detail/rbts/rbtree.hpp 22
/src/immer/immer/detail/rbts/node.hpp 39
/src/immer/immer/heap/gc_heap.hpp 3
/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 11
/src/immer/immer/detail/util.hpp 4
/src/immer/immer/vector_transient.hpp 9
/src/immer/extra/fuzzer/fuzzer_input.hpp 12
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/detail/rbts/position.hpp 155
/src/immer/immer/detail/rbts/operations.hpp 58

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 404 36.3%
gold [1:9] 1 0.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 707 63.5%
All colors 1112 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
24 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>::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>::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()']

24 173 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_result_mutimmer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub_mut ,std::__1::allocator >>(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint,void*)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1354
18 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()']

18 94 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_resultimmer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub ,std::__1::allocator >>(immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1208
12 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>::move_collision_insert(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_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>::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 285 immer::detail::hamts::champ ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_add_mut(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:648
12 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>::collisions()', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_insert(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string , std::__1::allocator >)', '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 >)']

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

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

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

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

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

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

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

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

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 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>*)']

0 21 immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::delete_deep(immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,unsignedint) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:1101
0 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 >)']

0 32 immer::detail::hamts::node ,std::__1::allocator >,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::make_merged_e(immer::no_transience_policy::apply >::type::edit,unsignedint,std::__1::basic_string ,std::__1::allocator >,unsignedlong,std::__1::basic_string ,std::__1::allocator >,unsignedlong) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:1024
0 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 >)']

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

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

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

Runtime coverage analysis

Covered functions
187
Functions that are reachable but not covered
23
Reachable functions
100
Percentage of reachable functions covered
77.0%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/set-st-str.cpp 7
/src/immer/immer/set.hpp 15
/src/immer/immer/detail/hamts/champ.hpp 54
/src/immer/immer/detail/hamts/node.hpp 69
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 8
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 293 26.3%
gold [1:9] 1 0.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 819 73.5%
All colors 1113 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

['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>::nodemap() 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', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'immer::detail::hamts::champ , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut::sub_result_mut(immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, bool)', 'immer::detail::hamts::node , std::__1::allocator >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::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)', '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 >)']

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

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

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

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

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

Runtime coverage analysis

Covered functions
201
Functions that are reachable but not covered
15
Reachable functions
102
Percentage of reachable functions covered
85.29%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/set-st-str-conflict.cpp 7
/src/immer/immer/set.hpp 15
/src/immer/immer/detail/hamts/champ.hpp 54
/src/immer/immer/detail/hamts/node.hpp 69
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 8
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 11
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 232 18.6%
gold [1:9] 1 0.08%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1014 81.3%
All colors 1247 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

Runtime coverage analysis

Covered functions
235
Functions that are reachable but not covered
15
Reachable functions
101
Percentage of reachable functions covered
85.15%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/map.cpp 11
/src/immer/immer/map.hpp 31
/src/immer/immer/detail/hamts/champ.hpp 63
/src/immer/immer/detail/hamts/node.hpp 69
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 10
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 523 37.7%
gold [1:9] 3 0.21%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 859 62.0%
All colors 1385 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
24 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>::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>::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>::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> > >*)']

24 212 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_result_mutimmer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub_mut ,std::__1::allocator >>(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint,void*)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1354
18 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']

18 96 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::sub_resultimmer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_sub ,std::__1::allocator >>(immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1208
12 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>::collision_count() const', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_collision_insert(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_collision_replace(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::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> > >)']

12 302 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::do_add_mut(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>*,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong,unsignedint)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:648
12 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']

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

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

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

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

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

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

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

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

8 8 fuzzer_input::next(unsignedlong) call site: 00000 /src/immer/extra/fuzzer/fuzzer_input.hpp:31
0 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> > >)']

0 53 immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::make_merged_e(immer::no_transience_policy::apply >::type::edit,unsignedint,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:1024
0 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> > >)']

0 41 immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,5u>::make_merged(unsignedint,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong,std::__1::pair ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,unsignedlong) call site: 00000 /src/immer/immer/detail/hamts/node.hpp:995
0 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>*)']

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

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

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

Runtime coverage analysis

Covered functions
235
Functions that are reachable but not covered
23
Reachable functions
100
Percentage of reachable functions covered
77.0%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/map-st-str.cpp 9
/src/immer/immer/map.hpp 28
/src/immer/immer/detail/hamts/champ.hpp 60
/src/immer/immer/detail/hamts/node.hpp 70
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 12
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/box.hpp 13
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 3
/src/immer/immer/detail/hamts/bits.hpp 10
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 364 26.2%
gold [1:9] 3 0.21%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1020 73.5%
All colors 1387 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

['immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::nodemap() 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> > >::pair[abi:ne180100](std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > const&)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::datamap() const', 'immer::detail::hamts::champ , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut::sub_result_mut(immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, bool)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::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>::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> > >)']

0 149 immer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::sub_result_mutimmer::detail::hamts::champ ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::do_sub_mut ,std::__1::allocator >>(immer::no_transience_policy::apply >::type::edit,immer::detail::hamts::node ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>>,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::hash_key,immer::map ,std::__1::allocator >,immer::box ,std::__1::allocator >,immer::memory_policy ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>>,colliding_hash_t,std::__1::equal_to ,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>::equal_key,immer::memory_policy ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u>*,std::__1::basic_string ,std::__1::allocator >const&,unsignedlong,unsignedint,void*)const call site: 00000 /src/immer/immer/detail/hamts/champ.hpp:1452
0 70 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>*)', '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[abi:ne180100](std::__1::pair , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > const&)', 'immer::detail::hamts::node , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map , std::__1::allocator >, immer::box , std::__1::allocator >, immer::memory_policy , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to , immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy , immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::datamap() const']

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

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

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

Runtime coverage analysis

Covered functions
249
Functions that are reachable but not covered
15
Reachable functions
102
Percentage of reachable functions covered
85.29%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/map-st-str-conflict.cpp 9
/src/immer/immer/map.hpp 28
/src/immer/immer/detail/hamts/champ.hpp 60
/src/immer/immer/detail/hamts/node.hpp 70
/src/immer/immer/detail/combine_standard_layout.hpp 15
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 12
/src/immer/extra/fuzzer/fuzzer_input.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/box.hpp 13
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/heap/cpp_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 3
/src/immer/immer/detail/hamts/bits.hpp 11
/src/immer/immer/transience/no_transience_policy.hpp 2
/src/immer/immer/detail/hamts/champ_iterator.hpp 8
/src/immer/immer/detail/iterator_facade.hpp 8
/src/immer/immer/algorithm.hpp 3

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 562 17.8%
gold [1:9] 2 0.06%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 2587 82.1%
All colors 3151 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)']

10 1160 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:1330
2 2 1 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)']

10 1160 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:1330
2 2 1 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)']

10 1026 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:1330
2 2 1 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)']

10 1026 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:1330
2 2 1 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)']

10 634 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:1330
2 2 1 :

['void* immer::cpp_heap::allocate (unsigned long, immer::norefs_tag)']

10 634 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::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:1330
0 994 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&&)']

0 994 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 875 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> >&)']

0 875 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 454 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)']

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

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

0 331 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 331 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&&)']

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

Runtime coverage analysis

Covered functions
1067
Functions that are reachable but not covered
21
Reachable functions
69
Percentage of reachable functions covered
69.57%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/flex-vector-bo.cpp 13
/src/immer/immer/flex_vector.hpp 29
/src/immer/immer/detail/rbts/rrbtree.hpp 39
/src/immer/immer/detail/rbts/node.hpp 62
/src/immer/immer/detail/combine_standard_layout.hpp 11
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 15
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/extra/fuzzer/fuzzer_input.hpp 11
/src/immer/immer/heap/cpp_heap.hpp 3
/src/immer/immer/detail/rbts/position.hpp 601
/src/immer/immer/detail/rbts/operations.hpp 326
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/visitor.hpp 83
/src/immer/immer/detail/rbts/rrbtree_iterator.hpp 4
/src/immer/immer/detail/iterator_facade.hpp 9
/src/immer/immer/box.hpp 5
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 2

Fuzzer: flex-vector-st

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 546 16.9%
gold [1:9] 2 0.06%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 2674 82.9%
All colors 3222 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

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

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

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

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

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

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

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

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

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

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

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

0 939 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::full_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 454 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&)']

0 454 decltype(auto)immer::detail::rbts::visit_maybe_relaxed_sub ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*&,unsignedint&,unsignedlong&>(immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*,unsignedint,unsignedlong,immer::detail::rbts::equals_visitor::rrb,immer::detail::rbts::rrbtree_iterator ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>&,immer::detail::rbts::node ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>*&,unsignedint&,unsignedlong&) call site: 00000 /src/immer/immer/detail/rbts/position.hpp:1841
0 363 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&&)']

0 363 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::relaxed_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 363 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&&)']

0 363 immer::detail::rbts::concat_center_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>immer::detail::rbts::concat_inners ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::empty_leaf_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&,immer::detail::rbts::regular_sub_pos ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 363 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&&)']

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

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

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

Runtime coverage analysis

Covered functions
1093
Functions that are reachable but not covered
21
Reachable functions
69
Percentage of reachable functions covered
69.57%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/flex-vector-st.cpp 13
/src/immer/immer/flex_vector.hpp 29
/src/immer/immer/detail/rbts/rrbtree.hpp 39
/src/immer/immer/detail/rbts/node.hpp 67
/src/immer/immer/detail/combine_standard_layout.hpp 16
/src/immer/immer/refcount/unsafe_refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 15
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/extra/fuzzer/fuzzer_input.hpp 11
/src/immer/immer/heap/cpp_heap.hpp 3
/src/immer/immer/detail/rbts/position.hpp 601
/src/immer/immer/detail/rbts/operations.hpp 326
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/visitor.hpp 83
/src/immer/immer/detail/rbts/rrbtree_iterator.hpp 4
/src/immer/immer/detail/iterator_facade.hpp 9
/src/immer/immer/box.hpp 5
/src/immer/immer/heap/debug_size_heap.hpp 2
/src/immer/immer/refcount/refcount_policy.hpp 2

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 530 16.2%
gold [1:9] 4 0.12%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 2729 83.6%
All colors 3263 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

['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()', 'void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)']

14 1351 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 :

['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()', 'void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)']

14 1351 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 :

['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()', 'void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)']

14 959 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 :

['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()', 'void* immer::split_heap<56ul, immer::with_free_list_node > > >, immer::debug_size_heap >::allocate (unsigned long, immer::norefs_tag)']

14 959 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 1164 2 :

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

0 1164 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 1045 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&&)']

0 1045 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 454 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&)']

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

['decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::last_sub , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, immer::detail::rbts::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> >&)', '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&&)']

0 416 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::relaxed_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 416 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> >&)']

0 416 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 416 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> >&)']

0 416 immer::detail::rbts::concat_center_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>immer::detail::rbts::concat_inners ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 332 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)']

8 667 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
21
Reachable functions
69
Percentage of reachable functions covered
69.57%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/flex-vector.cpp 13
/src/immer/immer/flex_vector.hpp 29
/src/immer/immer/detail/rbts/rrbtree.hpp 39
/src/immer/immer/detail/rbts/node.hpp 67
/src/immer/immer/detail/combine_standard_layout.hpp 16
/src/immer/immer/refcount/refcount_policy.hpp 4
/src/immer/immer/detail/util.hpp 15
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/extra/fuzzer/fuzzer_input.hpp 11
/src/immer/immer/heap/split_heap.hpp 3
/src/immer/immer/heap/with_data.hpp 3
/src/immer/immer/heap/unsafe_free_list_heap.hpp 4
/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 3
/src/immer/immer/heap/cpp_heap.hpp 3
/src/immer/immer/detail/rbts/position.hpp 601
/src/immer/immer/detail/rbts/operations.hpp 326
/src/immer/immer/transience/no_transience_policy.hpp 3
/src/immer/immer/detail/rbts/visitor.hpp 83
/src/immer/immer/detail/rbts/rrbtree_iterator.hpp 4
/src/immer/immer/detail/iterator_facade.hpp 9
/src/immer/immer/box.hpp 5

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 629 19.7%
gold [1:9] 2 0.06%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 2551 80.1%
All colors 3182 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
8 8 3 :

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

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

['immer::gc_heap::deallocate(unsigned long, void*)', '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)']

4 28 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
4 10 2 :

['immer::gc_heap::deallocate(unsigned long, void*)', '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)']

4 28 autoimmer::detail::rbts::node ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>::ensure_mutable_relaxed_e(immer::gc_transience_policy::apply >::type::edit,immer::gc_transience_policy::apply >::type::edit)::{lambda(auto:1)#2}::operator() (immer::detail::empty_t)const call site: 00000 /src/immer/immer/detail/rbts/node.hpp:909
0 1118 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&&)']

0 1118 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 1084 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::node_t::edit_t, 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::node_t::edit_t, immer::detail::rbts::null_sub_pos&&)']

0 1084 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::node_t::edit_t,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::node_t::edit_t,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
0 999 2 :

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

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

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

0 939 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::node_t::edit_t,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::node_t::edit_t,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
0 393 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&&)']

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

['immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> > immer::detail::rbts::concat_rebalance , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos>(immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::concat_center_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::detail::rbts::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> >&)']

0 393 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 393 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&&)']

0 393 immer::detail::rbts::concat_center_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>immer::detail::rbts::concat_inners ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>,immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&>(immer::detail::rbts::singleton_regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::empty_leaf_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&,immer::detail::rbts::full_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:1874
0 316 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::node_t::edit_t, 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::node_t::edit_t, immer::detail::rbts::null_sub_pos&&)', 'decltype(auto) immer::detail::rbts::singleton_regular_sub_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::last_sub , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&>(immer::detail::rbts::concat_left_mut_visitor , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >, immer::gc_transience_policy::apply >::type::edit&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::empty_leaf_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, immer::gc_transience_policy::apply >::type::edit&, immer::detail::rbts::relaxed_pos , immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)']

0 316 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::node_t::edit_t,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::node_t::edit_t,immer::detail::rbts::relaxed_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337
0 316 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::node_t::edit_t, 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::node_t::edit_t, 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> >&)']

0 316 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::node_t::edit_t,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::node_t::edit_t,immer::detail::rbts::regular_sub_pos ,immer::no_refcount_policy,immer::spinlock_policy,immer::gc_transience_policy,false,false>,2u,2u>>&) call site: 00000 /src/immer/immer/detail/rbts/operations.hpp:2337

Runtime coverage analysis

Covered functions
1070
Functions that are reachable but not covered
54
Reachable functions
284
Percentage of reachable functions covered
80.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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/immer/extra/fuzzer/flex-vector-gc.cpp 17
/src/immer/extra/fuzzer/fuzzer_gc_guard.hpp 2
/src/immer/immer/flex_vector.hpp 12
/src/immer/immer/detail/rbts/rrbtree.hpp 38
/src/immer/immer/detail/rbts/node.hpp 72
/src/immer/immer/detail/combine_standard_layout.hpp 17
/src/immer/immer/refcount/no_refcount_policy.hpp 4
/src/immer/immer/transience/gc_transience_policy.hpp 11
/src/immer/immer/detail/util.hpp 13
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/immer/immer/flex_vector_transient.hpp 13
/src/immer/immer/heap/gc_heap.hpp 3
/src/immer/extra/fuzzer/fuzzer_input.hpp 13
/src/immer/immer/detail/rbts/position.hpp 549
/src/immer/immer/detail/rbts/operations.hpp 369
/src/immer/immer/detail/rbts/visitor.hpp 100

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
immer::flex_vector ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,false,true>,3u,3u>::insert(unsignedlong,int)const& /src/immer/immer/flex_vector.hpp 4 ['N/A', 'N/A', 'size_t', 'int'] 46 0 72 10 8 1366 0 2508 2412
immer::flex_vector ,immer::unsafe_refcount_policy,immer::no_lock_policy,immer::no_transience_policy,true,true>,3u,3u>::insert(unsignedlong,int)const& /src/immer/immer/flex_vector.hpp 4 ['N/A', 'N/A', 'size_t', 'int'] 46 0 72 10 8 1342 0 2461 2334
immer::flex_vector ,immer::refcount_policy,immer::spinlock_policy,immer::no_transience_policy,false,true>,2u,2u>::insert(unsignedlong,int)const& /src/immer/immer/flex_vector.hpp 4 ['N/A', 'N/A', 'size_t', 'int'] 51 0 72 10 8 1403 0 2561 2272

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

Functions statically reachable by fuzzers
41.0%
2651 / 6517
Cyclomatic complexity statically reachable by fuzzers
28.9%
8893 / 31011

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 Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

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

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::update_mut(fuzzer_input&) const::{lambda(auto:1)#2}>(immer::no_transience_policy::apply >::type::edit, unsigned long, fuzzer_input&&)', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::push_back(int) const', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::update(fuzzer_input&) const::{lambda(auto:1)#1}>(unsigned long, fuzzer_input&&) const', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'auto LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const', 'LLVMFuzzerTestOneInput', 'immer::detail::arrays::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::make_n(unsigned long)', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::~with_capacity()', 'immer::detail::arrays::with_capacity, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >::empty()']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['immer::detail::arrays::no_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::dec()', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::gc_heap::allocate(unsigned long, immer::norefs_tag)', 'immer::gc_heap::allocate(unsigned long)', 'immer::detail::arrays::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::make_n(unsigned long)', 'immer::detail::arrays::no_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::push_back(int) const', 'immer::detail::arrays::no_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> > immer::detail::arrays::no_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::update(fuzzer_input&) const::{lambda(auto:1)#1}>(unsigned long, fuzzer_input&&) const', 'immer::detail::arrays::with_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::push_back_mut(immer::gc_transience_policy::apply >::type::edit, int)', 'void immer::detail::arrays::with_capacity, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false> >::update_mut(fuzzer_input&) const::{lambda(auto:1)#2}>(immer::gc_transience_policy::apply >::type::edit, unsigned long, fuzzer_input&&)', 'auto LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::hamts::champ, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::diff_node_data, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#3}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#3}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#3} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::champ, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::do_add(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned long, unsigned long, unsigned int) const', 'void immer::detail::hamts::champ, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::diff, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#3}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#3}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#3} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::data_count() const', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::dec() const', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'immer::detail::hamts::champ, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::dec() const', 'void immer::detail::hamts::champ, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::diff_data_node, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#3}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#3}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#3} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::make_inner_n_into(void*, unsigned long, unsigned int)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::hamts::champ, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff_node_data, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void immer::detail::hamts::champ, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_insert_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned long)', 'void immer::detail::hamts::champ, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff_data_node, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'fuzzer_input::next(unsigned long, unsigned long)', 'void immer::detail::hamts::champ, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::champ, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const', 'void immer::detail::hamts::champ, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::make_inner_n(unsigned int, unsigned int)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::diff_node_data >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::diff >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::do_add(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, std::__1::pair, unsigned long, unsigned int) const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::data_count() const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_collision_replace(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, std::__1::pair*, std::__1::pair)', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::dec() const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::dec() const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::diff_data_node >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::hash_key, immer::map, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u>::equal_key, immer::memory_policy, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::hamts::champ, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff_node_data, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void immer::detail::hamts::champ, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, unsigned long)', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_insert_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned long)', 'void immer::detail::hamts::champ, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff_data_node, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'fuzzer_input::next(unsigned long, unsigned long)', 'void immer::detail::hamts::champ, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::champ, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const', 'void immer::detail::hamts::champ, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_inner_n(unsigned int, unsigned int)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_leaf, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::rbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> immer::detail::rbts::rbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::update(fuzzer_input&) const::{lambda(auto:1)#1}>(unsigned long, fuzzer_input&&) const', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_leaf, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::do_copy_inner_replace(immer::detail::rbts::node, 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 int, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'immer::detail::rbts::rbtree, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', 'std::__1::tuple, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*> immer::detail::rbts::slice_right_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, 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> >&, unsigned long)', 'std::__1::tuple, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*> 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> >&, unsigned long, immer::no_transience_policy::apply >::type::edit)', 'fuzzer_input::next(unsigned long, unsigned long)', 'int& immer::detail::rbts::get_mut_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_regular, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::full_pos, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, unsigned long, immer::no_transience_policy::apply >::type::edit, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>**)', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_leaf, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff_node_data >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_insert_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, std::__1::pair)', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff_data_node >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::add_mut_result immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_update_mut, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::project_value, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::default_value, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::combine_value, unsigned long const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(int)#2}>(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned long const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(int)#2}&&, unsigned long, unsigned int) const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::diff >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_leaf, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::rbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> immer::detail::rbts::rbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::update(fuzzer_input&) const::{lambda(auto:1)#1}>(unsigned long, fuzzer_input&&) const', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_leaf, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::do_copy_inner_replace(immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, unsigned int, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'immer::detail::rbts::rbtree, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::push_back_mut(immer::no_transience_policy::apply >::type::edit, int)', '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>*> immer::detail::rbts::slice_right_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, 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> >&, unsigned long)', '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>*> 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> >&, unsigned long, immer::no_transience_policy::apply >::type::edit)', 'fuzzer_input::next(unsigned long, unsigned long)', 'int& immer::detail::rbts::get_mut_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_regular, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&>(immer::detail::rbts::full_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, unsigned long, 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>, 2u, 2u>**)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::make_path(unsigned int, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::rbts::dec_visitor::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> >&)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::visit_leaf, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::update(fuzzer_input&) const::{lambda(auto:1)#1}>(unsigned long, fuzzer_input&&) const', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::visit_leaf, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::do_copy_inner_replace(immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, unsigned int, unsigned int, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*)', 'decltype(auto) immer::detail::csl::member_two, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::impl_data_t, immer::detail::csl::inherit >::type::ownee, void>::type>::type>::type::get_ >::type::ownee>(immer::detail::csl::type_t >::type::ownee>)', 'immer::detail::rbts::rbtree, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::push_back_mut(immer::gc_transience_policy::apply >::type::edit, int)', '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>*> immer::detail::rbts::slice_right_visitor, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, 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> >&, unsigned long)', '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>*> 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> >&, unsigned long, immer::gc_transience_policy::apply >::type::edit)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::make_inner_n_into(void*, unsigned long, unsigned int)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['std::__1::enable_if, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*>), std::__1::basic_string, std::__1::allocator >*>::type immer::detail::uninitialized_copy, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*>(std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*)', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub, std::__1::allocator > >(std::__1::basic_string, std::__1::allocator > const&) const', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', 'void 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>::for_each_chunk_traversal, 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>::diff_node_data, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::owned(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, immer::no_transience_policy::apply >::type::edit)', 'void 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>::for_each_chunk_traversal, 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>::diff, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_add(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator >, unsigned long, unsigned int) const', 'void 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>::for_each_chunk_traversal, 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>::diff, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_add(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator >, unsigned long, unsigned int) const', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_value(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, std::__1::basic_string, std::__1::allocator >)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void 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>::for_each_chunk_traversal, 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>::diff_node_data, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned char, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void 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>::for_each_chunk_traversal, 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>::diff, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void 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>::for_each_chunk_traversal, 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>::diff, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void 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>::for_each_chunk_traversal, 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>::diff_data_node, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned char, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::copy_inner_replace_value(immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned int, std::__1::basic_string, std::__1::allocator >)', 'immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', 'fuzzer_input::next(unsigned long, unsigned long)', 'std::__1::enable_if, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*>), std::__1::basic_string, std::__1::allocator >*>::type immer::detail::uninitialized_copy, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*>(std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*, std::__1::basic_string, std::__1::allocator >*)', 'void 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>::diff, std::__1::allocator > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(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> const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff_node_data >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::copy_inner_replace_inline(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, unsigned int, std::__1::pair)', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::move_inner_insert_value(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned int, std::__1::pair)', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff_data_node >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'fuzzer_input::next(unsigned long, unsigned long)', 'immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::add_mut_result immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::do_update_mut, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::project_value, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::default_value, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::combine_value, unsigned long const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(int)#2}>(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>*, unsigned long const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(int)#2}&&, unsigned long, unsigned int) const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}> >(immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const', 'void immer::detail::hamts::champ, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::for_each_chunk_traversal, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::diff >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#1}>&>(immer::detail::hamts::node, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 5u> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['std::__1::enable_if, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>), std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>::type immer::detail::uninitialized_copy, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>(std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*)', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::sub, std::__1::allocator > >(std::__1::basic_string, std::__1::allocator > const&) const', 'void 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>::for_each_chunk_traversal, 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>::diff_node_data, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void 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>::update_mut, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::project_value, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::default_value, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::combine_value, std::__1::basic_string, std::__1::allocator >, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(std::__1::basic_string, std::__1::allocator >)#2}>(immer::no_transience_policy::apply >::type::edit, std::__1::basic_string, std::__1::allocator > const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(std::__1::basic_string, std::__1::allocator >)#2}&&)', 'void 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>::for_each_chunk_traversal, 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>::diff, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::do_add(immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, unsigned long, unsigned int) const', 'std::__1::enable_if, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>), std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>::type immer::detail::uninitialized_move, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*>(std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >*)', 'immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::make_inner_n(unsigned int, unsigned int, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, unsigned int, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u> immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::update, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::project_value, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::default_value, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 5u>::combine_value, std::__1::basic_string, std::__1::allocator >, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(std::__1::basic_string, std::__1::allocator >)#1}>(std::__1::basic_string, std::__1::allocator > const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(std::__1::basic_string, std::__1::allocator >)#1}&&) const']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['void 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>::for_each_chunk_traversal, 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>::diff_node_data, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned char, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void 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>::for_each_chunk_traversal, 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>::diff, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'void 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>::for_each_chunk_traversal, 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>::diff_data_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::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned char, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#1}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) const', 'immer::detail::hamts::set_bits_range::set_bits_iterator::operator++()', 'void 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>::for_each_chunk_traversal, 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>::diff, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > > >, immer::differ(fuzzer_input&) const::{lambda(auto:1&&)#1}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&, auto:2&&)#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> const*, immer::detail::hamts::node, unsigned int, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1&&)#2}) const::{lambda(auto:1 const&, {lambda(auto:1&&)#2} const&)#2}&>(immer::detail::hamts::node, unsigned int, fuzzer_input&&) 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>::copy_inner_replace_value(immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, unsigned int, std::__1::pair, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >)', 'immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::sub_result_mut immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::do_sub_mut, std::__1::allocator > >(immer::no_transience_policy::apply >::type::edit, immer::detail::hamts::node, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>*, std::__1::basic_string, std::__1::allocator > const&, unsigned long, unsigned int, void*) const', '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 immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::do_sub, 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&, unsigned long, unsigned int) const', 'fuzzer_input::next(unsigned long, unsigned long)', '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>::add_mut_result immer::detail::hamts::champ, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> > >, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::hash_key, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::equal_key, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::do_update_mut, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, 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>::project_value, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, colliding_hash_t, std::__1::equal_to, immer::memory_policy, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u>::default_value, immer::map, std::__1::allocator >, immer::box, std::__1::allocator >, immer::memory_policy, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true> >, 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>::combine_value, std::__1::basic_string, std::__1::allocator > const&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(std::__1::basic_string, std::__1::allocator >)#2}>(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&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(std::__1::basic_string, std::__1::allocator >)#2}&&, unsigned long, unsigned int) const']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['auto immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::make_inner_sr_n(unsigned int, immer::detail::csl::member, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::relaxed_data_t, void>::type*)::{lambda(auto:1)#1}::operator()(immer::detail::empty_t) const', '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> >&, unsigned long, immer::no_transience_policy::apply >::type::edit)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* immer::detail::rbts::update_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit_leaf, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>* immer::detail::rbts::update_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::visit_leaf, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::concat_merger, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >::finish() const', '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_leafs, 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::leaf_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::leaf_sub_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&)', '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>, 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, true, true>, 3u, 3u>, true, false>, unsigned long&&, immer::no_transience_policy::apply >::type::edit&)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>::do_copy_inner_replace(immer::detail::rbts::node, 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 int, immer::detail::rbts::node, 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>* immer::detail::rbts::push_tail_mut_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false>::visit_regular, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u> >&>(immer::detail::rbts::regular_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, 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, true, true>, 3u, 3u>*)', 'std::__1::tuple, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*, unsigned int, immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>*> immer::detail::rbts::slice_right_mut_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, true, true>, 3u, 3u>, false, false>::visit_relaxed, 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> >&, unsigned long, immer::no_transience_policy::apply >::type::edit)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['auto immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::make_inner_sr_n(unsigned int, immer::detail::csl::member_two, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>::relaxed_data_t, immer::detail::csl::member >::type::ownee, void>::type>::type>::type*)::{lambda(auto:1)#2}::operator()(immer::detail::empty_t) const', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>* immer::detail::rbts::update_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::visit_leaf, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::node, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>* immer::detail::rbts::update_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::visit_leaf, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::concat_merger, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >::finish() const', '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_leafs, 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::leaf_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::leaf_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>::do_copy_inner_replace(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, unsigned int, 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>* immer::detail::rbts::push_tail_mut_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> >&, 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>*)', 'std::__1::tuple, 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>*> immer::detail::rbts::slice_right_mut_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, false, false>::visit_relaxed, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&>(immer::detail::rbts::relaxed_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, unsigned long, immer::no_transience_policy::apply >::type::edit)', 'std::__1::tuple, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>*> immer::detail::rbts::slice_left_visitor, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u>, true>::visit_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> >&, unsigned long)', 'std::__1::tuple, 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>*> 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::full_pos, immer::unsafe_refcount_policy, immer::no_lock_policy, immer::no_transience_policy, false, true>, 3u, 3u> >&, unsigned long)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['auto immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>::make_inner_sr_n(unsigned int, 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*)::{lambda(auto:1)#2}::operator()(immer::detail::empty_t) const', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_leaf, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::visit_leaf, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::concat_merger, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> >::finish() const', 'immer::detail::rbts::concat_center_pos, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u> > immer::detail::rbts::concat_leafs, 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::leaf_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::leaf_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>::do_copy_inner_replace(immer::detail::rbts::node, 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 int, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>* immer::detail::rbts::push_tail_mut_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, 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> >&, immer::no_transience_policy::apply >::type::edit, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*)', 'std::__1::tuple, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*> immer::detail::rbts::slice_right_mut_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, false, 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> >&, unsigned long, immer::no_transience_policy::apply >::type::edit)', 'std::__1::tuple, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*> immer::detail::rbts::slice_right_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, 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> >&, unsigned long)', 'std::__1::tuple, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*, unsigned int, immer::detail::rbts::node, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>*> immer::detail::rbts::slice_right_visitor, immer::refcount_policy, immer::spinlock_policy, immer::no_transience_policy, false, true>, 2u, 2u>, 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> >&, unsigned long)']

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

Dictionary

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


Fuzzer function priority

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

-focus_function=['auto immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::make_inner_sr_n(unsigned int, immer::detail::csl::member_two, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::relaxed_data_t, immer::detail::csl::inherit >::type::ownee, void>::type>::type>::type*)::{lambda(auto:1)#2}::operator()(immer::detail::empty_t) const', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::visit_leaf, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'void immer::detail::rbts::dec_visitor::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> >&)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>* immer::detail::rbts::update_visitor, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::visit_leaf, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&>(fuzzer_input&&, unsigned long, LLVMFuzzerTestOneInput::$_0::operator()(fuzzer_input&) const::{lambda(auto:1)#1}&)', 'immer::detail::rbts::regular_pos, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::count() const', 'immer::detail::rbts::concat_merger, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >::finish() const', '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_leafs, 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::leaf_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::leaf_sub_pos, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u> >&)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>::do_copy_inner_replace(immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*, unsigned int, unsigned int, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*)', 'immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>* immer::detail::rbts::push_tail_mut_visitor, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>, 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> >&, immer::gc_transience_policy::apply >::type::edit, immer::detail::rbts::node, immer::no_refcount_policy, immer::spinlock_policy, immer::gc_transience_policy, false, false>, 2u, 2u>*)', '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>*> 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_relaxed, 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> >&, unsigned long, immer::gc_transience_policy::apply >::type::edit)']

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% ['flex-vector-bo']
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% ['flex-vector-bo']
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% ['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_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% ['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% ['flex-vector']
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% ['flex-vector']
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% ['flex-vector-gc']
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% ['flex-vector-gc']
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 10 19.23% ['flex-vector-gc']
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% ['flex-vector-gc']

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

Directories in report

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

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-vQBiKcEt64.data fuzzerLogFile-0-vQBiKcEt64.data.yaml array.covreport
array-gc fuzzerLogFile-0-StrkVmimiY.data fuzzerLogFile-0-StrkVmimiY.data.yaml array-gc.covreport
set-gc fuzzerLogFile-0-aAuuD0bhR8.data fuzzerLogFile-0-aAuuD0bhR8.data.yaml set-gc.covreport
set fuzzerLogFile-0-pGFG7AX1db.data fuzzerLogFile-0-pGFG7AX1db.data.yaml set.covreport
map-gc fuzzerLogFile-0-ow900i9ZbK.data fuzzerLogFile-0-ow900i9ZbK.data.yaml map-gc.covreport
set-st fuzzerLogFile-0-oobhvJz4bx.data fuzzerLogFile-0-oobhvJz4bx.data.yaml set-st.covreport
vector fuzzerLogFile-0-nL5TmW77qH.data fuzzerLogFile-0-nL5TmW77qH.data.yaml vector.covreport
map-st fuzzerLogFile-0-m9D8J8zZYG.data fuzzerLogFile-0-m9D8J8zZYG.data.yaml map-st.covreport
vector-st fuzzerLogFile-0-LRX8fuZ8FG.data fuzzerLogFile-0-LRX8fuZ8FG.data.yaml vector-st.covreport
vector-gc fuzzerLogFile-0-e5uGPKgJOP.data fuzzerLogFile-0-e5uGPKgJOP.data.yaml vector-gc.covreport
set-st-str fuzzerLogFile-0-lNHV2ZxPzu.data fuzzerLogFile-0-lNHV2ZxPzu.data.yaml set-st-str.covreport
set-st-str-conflict fuzzerLogFile-0-4W4UVl9f7I.data fuzzerLogFile-0-4W4UVl9f7I.data.yaml set-st-str-conflict.covreport
map fuzzerLogFile-0-V2vEfAEj5t.data fuzzerLogFile-0-V2vEfAEj5t.data.yaml map.covreport
map-st-str fuzzerLogFile-0-y2svwvTaBW.data fuzzerLogFile-0-y2svwvTaBW.data.yaml map-st-str.covreport
map-st-str-conflict fuzzerLogFile-0-vwq6CNsL6N.data fuzzerLogFile-0-vwq6CNsL6N.data.yaml map-st-str-conflict.covreport
flex-vector-bo fuzzerLogFile-0-2yl4j9cD2u.data fuzzerLogFile-0-2yl4j9cD2u.data.yaml flex-vector-bo.covreport
flex-vector-st fuzzerLogFile-0-bTPu2RPSov.data fuzzerLogFile-0-bTPu2RPSov.data.yaml flex-vector-st.covreport
flex-vector fuzzerLogFile-0-pZcirresU3.data fuzzerLogFile-0-pZcirresU3.data.yaml flex-vector.covreport
flex-vector-gc fuzzerLogFile-0-AXieR8edSX.data fuzzerLogFile-0-AXieR8edSX.data.yaml flex-vector-gc.covreport