Coverage Report

Created: 2025-06-10 13:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/bitcoin/src/util/check.h
Line
Count
Source
1
// Copyright (c) 2019-2022 The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_UTIL_CHECK_H
6
#define BITCOIN_UTIL_CHECK_H
7
8
#include <attributes.h>
9
10
#include <atomic>
11
#include <cassert> // IWYU pragma: export
12
#include <stdexcept>
13
#include <string>
14
#include <string_view>
15
#include <utility>
16
17
constexpr bool G_FUZZING_BUILD{
18
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
19
    true
20
#else
21
    false
22
#endif
23
};
24
constexpr bool G_ABORT_ON_FAILED_ASSUME{
25
#ifdef ABORT_ON_FAILED_ASSUME
26
    true
27
#else
28
    false
29
#endif
30
};
31
32
extern std::atomic<bool> g_enable_dynamic_fuzz_determinism;
33
34
inline bool EnableFuzzDeterminism()
35
4.54M
{
36
4.54M
    if constexpr (G_FUZZING_BUILD) {
37
4.54M
        return true;
38
    } else if constexpr (!G_ABORT_ON_FAILED_ASSUME) {
39
        // Running fuzz tests is always disabled if Assume() doesn't abort
40
        // (ie, non-fuzz non-debug builds), as otherwise tests which
41
        // should fail due to a failing Assume may still pass. As such,
42
        // we also statically disable fuzz determinism in that case.
43
        return false;
44
    } else {
45
        return g_enable_dynamic_fuzz_determinism;
46
    }
47
4.54M
}
48
49
std::string StrFormatInternalBug(std::string_view msg, std::string_view file, int line, std::string_view func);
50
51
class NonFatalCheckError : public std::runtime_error
52
{
53
public:
54
    NonFatalCheckError(std::string_view msg, std::string_view file, int line, std::string_view func);
55
};
56
57
/** Helper for CHECK_NONFATAL() */
58
template <typename T>
59
T&& inline_check_non_fatal(LIFETIMEBOUND T&& val, const char* file, int line, const char* func, const char* assertion)
60
78.0M
{
61
78.0M
    if (!val) {
  Branch (61:9): [True: 0, False: 77.8M]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 11.0k]
  Branch (61:9): [True: 0, False: 11.0k]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 11.0k]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 11.0k]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 0]
  Branch (61:9): [True: 0, False: 55.4k]
  Branch (61:9): [True: 0, False: 55.4k]
  Branch (61:9): [True: 0, False: 11.0k]
  Branch (61:9): [True: 0, False: 0]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
78.0M
    return std::forward<T>(val);
65
78.0M
}
bool&& inline_check_non_fatal<bool>(bool&&, char const*, int, char const*, char const*)
Line
Count
Source
60
77.8M
{
61
77.8M
    if (!val) {
  Branch (61:9): [True: 0, False: 77.8M]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
77.8M
    return std::forward<T>(val);
65
77.8M
}
Unexecuted instantiation: std::unique_ptr<CCoinsViewCursor, std::default_delete<CCoinsViewCursor> >&& inline_check_non_fatal<std::unique_ptr<CCoinsViewCursor, std::default_delete<CCoinsViewCursor> > >(std::unique_ptr<CCoinsViewCursor, std::default_delete<CCoinsViewCursor> >&&, char const*, int, char const*, char const*)
Unexecuted instantiation: CBlockIndex const*& inline_check_non_fatal<CBlockIndex const*&>(CBlockIndex const*&, char const*, int, char const*, char const*)
Unexecuted instantiation: node::BlockManager*&& inline_check_non_fatal<node::BlockManager*>(node::BlockManager*&&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::shared_ptr<CTransaction const>&& inline_check_non_fatal<std::shared_ptr<CTransaction const> >(std::shared_ptr<CTransaction const>&&, char const*, int, char const*, char const*)
Unexecuted instantiation: CBlockIndex*& inline_check_non_fatal<CBlockIndex*&>(CBlockIndex*&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::optional<interfaces::BlockRef>&& inline_check_non_fatal<std::optional<interfaces::BlockRef> >(std::optional<interfaces::BlockRef>&&, char const*, int, char const*, char const*)
std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> >& inline_check_non_fatal<std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> >&>(std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> >&, char const*, int, char const*, char const*)
Line
Count
Source
60
11.0k
{
61
11.0k
    if (!val) {
  Branch (61:9): [True: 0, False: 11.0k]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
11.0k
    return std::forward<T>(val);
65
11.0k
}
CBlockIndex*&& inline_check_non_fatal<CBlockIndex*>(CBlockIndex*&&, char const*, int, char const*, char const*)
Line
Count
Source
60
11.0k
{
61
11.0k
    if (!val) {
  Branch (61:9): [True: 0, False: 11.0k]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
11.0k
    return std::forward<T>(val);
65
11.0k
}
Unexecuted instantiation: CBlockIndex const*&& inline_check_non_fatal<CBlockIndex const*>(CBlockIndex const*&&, char const*, int, char const*, char const*)
Unexecuted instantiation: CBlockIndex* const& inline_check_non_fatal<CBlockIndex* const&>(CBlockIndex* const&, char const*, int, char const*, char const*)
std::unique_ptr<node::Warnings, std::default_delete<node::Warnings> >& inline_check_non_fatal<std::unique_ptr<node::Warnings, std::default_delete<node::Warnings> >&>(std::unique_ptr<node::Warnings, std::default_delete<node::Warnings> >&, char const*, int, char const*, char const*)
Line
Count
Source
60
11.0k
{
61
11.0k
    if (!val) {
  Branch (61:9): [True: 0, False: 11.0k]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
11.0k
    return std::forward<T>(val);
65
11.0k
}
Unexecuted instantiation: std::optional<kernel::CCoinsStats>& inline_check_non_fatal<std::optional<kernel::CCoinsStats>&>(std::optional<kernel::CCoinsStats>&, char const*, int, char const*, char const*)
Unexecuted instantiation: ValidationSignals* const& inline_check_non_fatal<ValidationSignals* const&>(ValidationSignals* const&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> > const& inline_check_non_fatal<std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> > const&>(std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> > const&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::unique_ptr<interfaces::BlockTemplate, std::default_delete<interfaces::BlockTemplate> >& inline_check_non_fatal<std::unique_ptr<interfaces::BlockTemplate, std::default_delete<interfaces::BlockTemplate> >&>(std::unique_ptr<interfaces::BlockTemplate, std::default_delete<interfaces::BlockTemplate> >&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::unique_ptr<CScheduler, std::default_delete<CScheduler> > const& inline_check_non_fatal<std::unique_ptr<CScheduler, std::default_delete<CScheduler> > const&>(std::unique_ptr<CScheduler, std::default_delete<CScheduler> > const&, char const*, int, char const*, char const*)
std::function<bool ()>& inline_check_non_fatal<std::function<bool ()>&>(std::function<bool ()>&, char const*, int, char const*, char const*)
Line
Count
Source
60
11.0k
{
61
11.0k
    if (!val) {
  Branch (61:9): [True: 0, False: 11.0k]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
11.0k
    return std::forward<T>(val);
65
11.0k
}
Unexecuted instantiation: bool& inline_check_non_fatal<bool&>(bool&, char const*, int, char const*, char const*)
Unexecuted instantiation: wallet::DescriptorScriptPubKeyMan*& inline_check_non_fatal<wallet::DescriptorScriptPubKeyMan*&>(wallet::DescriptorScriptPubKeyMan*&, char const*, int, char const*, char const*)
JSONRPCRequest const*& inline_check_non_fatal<JSONRPCRequest const*&>(JSONRPCRequest const*&, char const*, int, char const*, char const*)
Line
Count
Source
60
55.4k
{
61
55.4k
    if (!val) {
  Branch (61:9): [True: 0, False: 55.4k]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
55.4k
    return std::forward<T>(val);
65
55.4k
}
UniValue const*& inline_check_non_fatal<UniValue const*&>(UniValue const*&, char const*, int, char const*, char const*)
Line
Count
Source
60
55.4k
{
61
55.4k
    if (!val) {
  Branch (61:9): [True: 0, False: 55.4k]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
55.4k
    return std::forward<T>(val);
65
55.4k
}
std::optional<arith_uint256>&& inline_check_non_fatal<std::optional<arith_uint256> >(std::optional<arith_uint256>&&, char const*, int, char const*, char const*)
Line
Count
Source
60
11.0k
{
61
11.0k
    if (!val) {
  Branch (61:9): [True: 0, False: 11.0k]
62
0
        throw NonFatalCheckError{assertion, file, line, func};
63
0
    }
64
11.0k
    return std::forward<T>(val);
65
11.0k
}
Unexecuted instantiation: bool const& inline_check_non_fatal<bool const&>(bool const&, char const*, int, char const*, char const*)
66
67
#if defined(NDEBUG)
68
#error "Cannot compile without assertions!"
69
#endif
70
71
/** Helper for Assert() */
72
void assertion_fail(std::string_view file, int line, std::string_view func, std::string_view assertion);
73
74
/** Helper for Assert()/Assume() */
75
template <bool IS_ASSERT, typename T>
76
constexpr T&& inline_assertion_check(LIFETIMEBOUND T&& val, [[maybe_unused]] const char* file, [[maybe_unused]] int line, [[maybe_unused]] const char* func, [[maybe_unused]] const char* assertion)
77
275M
{
78
275M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
275M
        if (!val) {
  Branch (79:13): [True: 0, False: 133k]
  Branch (79:13): [True: 0, False: 66.5k]
  Branch (79:13): [True: 0, False: 122M]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 11.0k]
  Branch (79:13): [True: 0, False: 11.0k]
  Branch (79:13): [True: 0, False: 33.2k]
  Branch (79:13): [True: 0, False: 11.0k]
  Branch (79:13): [True: 0, False: 11.0k]
  Branch (79:13): [True: 0, False: 251k]
  Branch (79:13): [True: 0, False: 523k]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 15.5M]
  Branch (79:13): [True: 0, False: 7.98M]
  Branch (79:13): [True: 0, False: 6.74M]
  Branch (79:13): [True: 0, False: 29.8M]
  Branch (79:13): [True: 0, False: 29.8M]
  Branch (79:13): [True: 0, False: 23.3M]
  Branch (79:13): [True: 0, False: 2.23M]
  Branch (79:13): [True: 0, False: 87.5k]
  Branch (79:13): [True: 0, False: 8.84k]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 357]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 6.95M]
  Branch (79:13): [True: 0, False: 2.22M]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 403k]
  Branch (79:13): [True: 0, False: 14.1k]
  Branch (79:13): [True: 0, False: 1.49M]
  Branch (79:13): [True: 0, False: 43.1k]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 2.27M]
  Branch (79:13): [True: 0, False: 2.23M]
  Branch (79:13): [True: 0, False: 6.72M]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 2.62k]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 11.0k]
  Branch (79:13): [True: 0, False: 4.71M]
  Branch (79:13): [True: 0, False: 4.71M]
  Branch (79:13): [True: 0, False: 2.35M]
  Branch (79:13): [True: 0, False: 2.23M]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 199k]
  Branch (79:13): [True: 0, False: 0]
  Branch (79:13): [True: 0, False: 22.1k]
  Branch (79:13): [True: 0, False: 0]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
275M
    }
83
275M
    return std::forward<T>(val);
84
275M
}
ArgsManager*& inline_assertion_check<true, ArgsManager*&>(ArgsManager*&, char const*, int, char const*, char const*)
Line
Count
Source
77
133k
{
78
133k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
133k
        if (!val) {
  Branch (79:13): [True: 0, False: 133k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
133k
    }
83
133k
    return std::forward<T>(val);
84
133k
}
util::SignalInterrupt*& inline_assertion_check<true, util::SignalInterrupt*&>(util::SignalInterrupt*&, char const*, int, char const*, char const*)
Line
Count
Source
77
66.5k
{
78
66.5k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
66.5k
        if (!val) {
  Branch (79:13): [True: 0, False: 66.5k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
66.5k
    }
83
66.5k
    return std::forward<T>(val);
84
66.5k
}
bool&& inline_assertion_check<false, bool>(bool&&, char const*, int, char const*, char const*)
Line
Count
Source
77
122M
{
78
122M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
122M
        if (!val) {
  Branch (79:13): [True: 0, False: 122M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
122M
    }
83
122M
    return std::forward<T>(val);
84
122M
}
Unexecuted instantiation: std::optional<util::SignalInterrupt>& inline_assertion_check<true, std::optional<util::SignalInterrupt>&>(std::optional<util::SignalInterrupt>&, char const*, int, char const*, char const*)
std::function<bool ()>& inline_assertion_check<true, std::function<bool ()>&>(std::function<bool ()>&, char const*, int, char const*, char const*)
Line
Count
Source
77
11.0k
{
78
11.0k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
11.0k
        if (!val) {
  Branch (79:13): [True: 0, False: 11.0k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
11.0k
    }
83
11.0k
    return std::forward<T>(val);
84
11.0k
}
std::unique_ptr<node::Warnings, std::default_delete<node::Warnings> >& inline_assertion_check<true, std::unique_ptr<node::Warnings, std::default_delete<node::Warnings> >&>(std::unique_ptr<node::Warnings, std::default_delete<node::Warnings> >&, char const*, int, char const*, char const*)
Line
Count
Source
77
11.0k
{
78
11.0k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
11.0k
        if (!val) {
  Branch (79:13): [True: 0, False: 11.0k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
11.0k
    }
83
11.0k
    return std::forward<T>(val);
84
11.0k
}
util::Result<void>&& inline_assertion_check<true, util::Result<void> >(util::Result<void>&&, char const*, int, char const*, char const*)
Line
Count
Source
77
33.2k
{
78
33.2k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
33.2k
        if (!val) {
  Branch (79:13): [True: 0, False: 33.2k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
33.2k
    }
83
33.2k
    return std::forward<T>(val);
84
33.2k
}
std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> >& inline_assertion_check<true, std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> >&>(std::unique_ptr<ValidationSignals, std::default_delete<ValidationSignals> >&, char const*, int, char const*, char const*)
Line
Count
Source
77
11.0k
{
78
11.0k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
11.0k
        if (!val) {
  Branch (79:13): [True: 0, False: 11.0k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
11.0k
    }
83
11.0k
    return std::forward<T>(val);
84
11.0k
}
CTxMemPool*&& inline_assertion_check<true, CTxMemPool*>(CTxMemPool*&&, char const*, int, char const*, char const*)
Line
Count
Source
77
11.0k
{
78
11.0k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
11.0k
        if (!val) {
  Branch (79:13): [True: 0, False: 11.0k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
11.0k
    }
83
11.0k
    return std::forward<T>(val);
84
11.0k
}
std::unique_ptr<ChainstateManager, std::default_delete<ChainstateManager> >& inline_assertion_check<true, std::unique_ptr<ChainstateManager, std::default_delete<ChainstateManager> >&>(std::unique_ptr<ChainstateManager, std::default_delete<ChainstateManager> >&, char const*, int, char const*, char const*)
Line
Count
Source
77
251k
{
78
251k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
251k
        if (!val) {
  Branch (79:13): [True: 0, False: 251k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
251k
    }
83
251k
    return std::forward<T>(val);
84
251k
}
CBlockIndex*&& inline_assertion_check<true, CBlockIndex*>(CBlockIndex*&&, char const*, int, char const*, char const*)
Line
Count
Source
77
523k
{
78
523k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
523k
        if (!val) {
  Branch (79:13): [True: 0, False: 523k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
523k
    }
83
523k
    return std::forward<T>(val);
84
523k
}
Unexecuted instantiation: CBlockIndex const*& inline_assertion_check<true, CBlockIndex const*&>(CBlockIndex const*&, char const*, int, char const*, char const*)
std::unique_ptr<LevelDBContext, std::default_delete<LevelDBContext> > const& inline_assertion_check<true, std::unique_ptr<LevelDBContext, std::default_delete<LevelDBContext> > const&>(std::unique_ptr<LevelDBContext, std::default_delete<LevelDBContext> > const&, char const*, int, char const*, char const*)
Line
Count
Source
77
15.5M
{
78
15.5M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
15.5M
        if (!val) {
  Branch (79:13): [True: 0, False: 15.5M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
15.5M
    }
83
15.5M
    return std::forward<T>(val);
84
15.5M
}
int&& inline_assertion_check<false, int>(int&&, char const*, int, char const*, char const*)
Line
Count
Source
77
7.98M
{
78
7.98M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
7.98M
        if (!val) {
  Branch (79:13): [True: 0, False: 7.98M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
7.98M
    }
83
7.98M
    return std::forward<T>(val);
84
7.98M
}
unsigned char const& inline_assertion_check<false, unsigned char const&>(unsigned char const&, char const*, int, char const*, char const*)
Line
Count
Source
77
6.74M
{
78
6.74M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
6.74M
        if (!val) {
  Branch (79:13): [True: 0, False: 6.74M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
6.74M
    }
83
6.74M
    return std::forward<T>(val);
84
6.74M
}
std::unique_ptr<CoinsViews, std::default_delete<CoinsViews> >& inline_assertion_check<true, std::unique_ptr<CoinsViews, std::default_delete<CoinsViews> >&>(std::unique_ptr<CoinsViews, std::default_delete<CoinsViews> >&, char const*, int, char const*, char const*)
Line
Count
Source
77
29.8M
{
78
29.8M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
29.8M
        if (!val) {
  Branch (79:13): [True: 0, False: 29.8M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
29.8M
    }
83
29.8M
    return std::forward<T>(val);
84
29.8M
}
std::unique_ptr<CCoinsViewCache, std::default_delete<CCoinsViewCache> >& inline_assertion_check<true, std::unique_ptr<CCoinsViewCache, std::default_delete<CCoinsViewCache> >&>(std::unique_ptr<CCoinsViewCache, std::default_delete<CCoinsViewCache> >&, char const*, int, char const*, char const*)
Line
Count
Source
77
29.8M
{
78
29.8M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
29.8M
        if (!val) {
  Branch (79:13): [True: 0, False: 29.8M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
29.8M
    }
83
29.8M
    return std::forward<T>(val);
84
29.8M
}
std::optional<arith_uint256> const& inline_assertion_check<true, std::optional<arith_uint256> const&>(std::optional<arith_uint256> const&, char const*, int, char const*, char const*)
Line
Count
Source
77
23.3M
{
78
23.3M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
23.3M
        if (!val) {
  Branch (79:13): [True: 0, False: 23.3M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
23.3M
    }
83
23.3M
    return std::forward<T>(val);
84
23.3M
}
std::optional<uint256> const& inline_assertion_check<true, std::optional<uint256> const&>(std::optional<uint256> const&, char const*, int, char const*, char const*)
Line
Count
Source
77
2.23M
{
78
2.23M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
2.23M
        if (!val) {
  Branch (79:13): [True: 0, False: 2.23M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
2.23M
    }
83
2.23M
    return std::forward<T>(val);
84
2.23M
}
bool& inline_assertion_check<false, bool&>(bool&, char const*, int, char const*, char const*)
Line
Count
Source
77
87.5k
{
78
87.5k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
87.5k
        if (!val) {
  Branch (79:13): [True: 0, False: 87.5k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
87.5k
    }
83
87.5k
    return std::forward<T>(val);
84
87.5k
}
net_processing.cpp:(anonymous namespace)::CNodeState*&& inline_assertion_check<true, (anonymous namespace)::CNodeState*>((anonymous namespace)::CNodeState*&&, char const*, int, char const*, char const*)
Line
Count
Source
77
8.84k
{
78
8.84k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
8.84k
        if (!val) {
  Branch (79:13): [True: 0, False: 8.84k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
8.84k
    }
83
8.84k
    return std::forward<T>(val);
84
8.84k
}
Unexecuted instantiation: net_processing.cpp:std::shared_ptr<(anonymous namespace)::Peer>&& inline_assertion_check<true, std::shared_ptr<(anonymous namespace)::Peer> >(std::shared_ptr<(anonymous namespace)::Peer>&&, char const*, int, char const*, char const*)
CBlockIndex const*&& inline_assertion_check<true, CBlockIndex const*>(CBlockIndex const*&&, char const*, int, char const*, char const*)
Line
Count
Source
77
357
{
78
357
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
357
        if (!val) {
  Branch (79:13): [True: 0, False: 357]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
357
    }
83
357
    return std::forward<T>(val);
84
357
}
Unexecuted instantiation: std::optional<AssumeutxoData> const& inline_assertion_check<true, std::optional<AssumeutxoData> const&>(std::optional<AssumeutxoData> const&, char const*, int, char const*, char const*)
bool&& inline_assertion_check<true, bool>(bool&&, char const*, int, char const*, char const*)
Line
Count
Source
77
6.95M
{
78
6.95M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
6.95M
        if (!val) {
  Branch (79:13): [True: 0, False: 6.95M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
6.95M
    }
83
6.95M
    return std::forward<T>(val);
84
6.95M
}
std::optional<node::BlockfileCursor>& inline_assertion_check<true, std::optional<node::BlockfileCursor>&>(std::optional<node::BlockfileCursor>&, char const*, int, char const*, char const*)
Line
Count
Source
77
2.22M
{
78
2.22M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
2.22M
        if (!val) {
  Branch (79:13): [True: 0, False: 2.22M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
2.22M
    }
83
2.22M
    return std::forward<T>(val);
84
2.22M
}
Unexecuted instantiation: node::NodeContext*& inline_assertion_check<true, node::NodeContext*&>(node::NodeContext*&, char const*, int, char const*, char const*)
Unexecuted instantiation: node::NodeContext*&& inline_assertion_check<true, node::NodeContext*>(node::NodeContext*&&, char const*, int, char const*, char const*)
Unexecuted instantiation: interfaces::WalletLoader*& inline_assertion_check<true, interfaces::WalletLoader*&>(interfaces::WalletLoader*&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::unique_ptr<node::KernelNotifications, std::default_delete<node::KernelNotifications> >& inline_assertion_check<true, std::unique_ptr<node::KernelNotifications, std::default_delete<node::KernelNotifications> >&>(std::unique_ptr<node::KernelNotifications, std::default_delete<node::KernelNotifications> >&, char const*, int, char const*, char const*)
Unexecuted instantiation: CTxMemPool const* const& inline_assertion_check<true, CTxMemPool const* const&>(CTxMemPool const* const&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::optional<uint256> const& inline_assertion_check<false, std::optional<uint256> const&>(std::optional<uint256> const&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::optional<uint256>&& inline_assertion_check<false, std::optional<uint256> >(std::optional<uint256>&&, char const*, int, char const*, char const*)
bool const& inline_assertion_check<false, bool const&>(bool const&, char const*, int, char const*, char const*)
Line
Count
Source
77
403k
{
78
403k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
403k
        if (!val) {
  Branch (79:13): [True: 0, False: 403k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
403k
    }
83
403k
    return std::forward<T>(val);
84
403k
}
CTxMemPoolEntry const*&& inline_assertion_check<true, CTxMemPoolEntry const*>(CTxMemPoolEntry const*&&, char const*, int, char const*, char const*)
Line
Count
Source
77
14.1k
{
78
14.1k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
14.1k
        if (!val) {
  Branch (79:13): [True: 0, False: 14.1k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
14.1k
    }
83
14.1k
    return std::forward<T>(val);
84
14.1k
}
util::Result<std::set<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag>, CompareIteratorByHash, std::allocator<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag> > > >& inline_assertion_check<false, util::Result<std::set<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag>, CompareIteratorByHash, std::allocator<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag> > > >&>(util::Result<std::set<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag>, CompareIteratorByHash, std::allocator<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag> > > >&, char const*, int, char const*, char const*)
Line
Count
Source
77
1.49M
{
78
1.49M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
1.49M
        if (!val) {
  Branch (79:13): [True: 0, False: 1.49M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
1.49M
    }
83
1.49M
    return std::forward<T>(val);
84
1.49M
}
util::Result<std::set<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag>, CompareIteratorByHash, std::allocator<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag> > > >&& inline_assertion_check<false, util::Result<std::set<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag>, CompareIteratorByHash, std::allocator<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag> > > > >(util::Result<std::set<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag>, CompareIteratorByHash, std::allocator<boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::ordered_index_node<boost::multi_index::detail::null_augment_policy, boost::multi_index::detail::index_node_base<CTxMemPoolEntry, std::allocator<CTxMemPoolEntry> > > > > > >, boost::multi_index::detail::bucket_array<std::allocator<CTxMemPoolEntry> >, boost::multi_index::detail::hashed_unique_tag, boost::multi_index::detail::hashed_index_global_iterator_tag> > > >&&, char const*, int, char const*, char const*)
Line
Count
Source
77
43.1k
{
78
43.1k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
43.1k
        if (!val) {
  Branch (79:13): [True: 0, False: 43.1k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
43.1k
    }
83
43.1k
    return std::forward<T>(val);
84
43.1k
}
Unexecuted instantiation: std::unique_ptr<CTxMemPool::ChangeSet, std::default_delete<CTxMemPool::ChangeSet> >& inline_assertion_check<false, std::unique_ptr<CTxMemPool::ChangeSet, std::default_delete<CTxMemPool::ChangeSet> >&>(std::unique_ptr<CTxMemPool::ChangeSet, std::default_delete<CTxMemPool::ChangeSet> >&, char const*, int, char const*, char const*)
uint256 const* const& inline_assertion_check<true, uint256 const* const&>(uint256 const* const&, char const*, int, char const*, char const*)
Line
Count
Source
77
2.27M
{
78
2.27M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
2.27M
        if (!val) {
  Branch (79:13): [True: 0, False: 2.27M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
2.27M
    }
83
2.27M
    return std::forward<T>(val);
84
2.27M
}
CBlockIndex*& inline_assertion_check<true, CBlockIndex*&>(CBlockIndex*&, char const*, int, char const*, char const*)
Line
Count
Source
77
2.23M
{
78
2.23M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
2.23M
        if (!val) {
  Branch (79:13): [True: 0, False: 2.23M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
2.23M
    }
83
2.23M
    return std::forward<T>(val);
84
2.23M
}
std::optional<int> const& inline_assertion_check<true, std::optional<int> const&>(std::optional<int> const&, char const*, int, char const*, char const*)
Line
Count
Source
77
6.72M
{
78
6.72M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
6.72M
        if (!val) {
  Branch (79:13): [True: 0, False: 6.72M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
6.72M
    }
83
6.72M
    return std::forward<T>(val);
84
6.72M
}
Unexecuted instantiation: std::optional<int>&& inline_assertion_check<true, std::optional<int> >(std::optional<int>&&, char const*, int, char const*, char const*)
std::optional<uint256>&& inline_assertion_check<true, std::optional<uint256> >(std::optional<uint256>&&, char const*, int, char const*, char const*)
Line
Count
Source
77
2.62k
{
78
2.62k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
2.62k
        if (!val) {
  Branch (79:13): [True: 0, False: 2.62k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
2.62k
    }
83
2.62k
    return std::forward<T>(val);
84
2.62k
}
Unexecuted instantiation: std::unique_ptr<Chainstate, std::default_delete<Chainstate> >& inline_assertion_check<true, std::unique_ptr<Chainstate, std::default_delete<Chainstate> >&>(std::unique_ptr<Chainstate, std::default_delete<Chainstate> >&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::optional<fs::path>&& inline_assertion_check<true, std::optional<fs::path> >(std::optional<fs::path>&&, char const*, int, char const*, char const*)
std::unique_ptr<util::TaskRunnerInterface, std::default_delete<util::TaskRunnerInterface> >& inline_assertion_check<true, std::unique_ptr<util::TaskRunnerInterface, std::default_delete<util::TaskRunnerInterface> >&>(std::unique_ptr<util::TaskRunnerInterface, std::default_delete<util::TaskRunnerInterface> >&, char const*, int, char const*, char const*)
Line
Count
Source
77
11.0k
{
78
11.0k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
11.0k
        if (!val) {
  Branch (79:13): [True: 0, False: 11.0k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
11.0k
    }
83
11.0k
    return std::forward<T>(val);
84
11.0k
}
evhttp_connection*&& inline_assertion_check<true, evhttp_connection*>(evhttp_connection*&&, char const*, int, char const*, char const*)
Line
Count
Source
77
4.71M
{
78
4.71M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
4.71M
        if (!val) {
  Branch (79:13): [True: 0, False: 4.71M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
4.71M
    }
83
4.71M
    return std::forward<T>(val);
84
4.71M
}
evhttp_request*& inline_assertion_check<true, evhttp_request*&>(evhttp_request*&, char const*, int, char const*, char const*)
Line
Count
Source
77
4.71M
{
78
4.71M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
4.71M
        if (!val) {
  Branch (79:13): [True: 0, False: 4.71M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
4.71M
    }
83
4.71M
    return std::forward<T>(val);
84
4.71M
}
evhttp_connection const*& inline_assertion_check<true, evhttp_connection const*&>(evhttp_connection const*&, char const*, int, char const*, char const*)
Line
Count
Source
77
2.35M
{
78
2.35M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
2.35M
        if (!val) {
  Branch (79:13): [True: 0, False: 2.35M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
2.35M
    }
83
2.35M
    return std::forward<T>(val);
84
2.35M
}
CBlock const* const& inline_assertion_check<true, CBlock const* const&>(CBlock const* const&, char const*, int, char const*, char const*)
Line
Count
Source
77
2.23M
{
78
2.23M
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
2.23M
        if (!val) {
  Branch (79:13): [True: 0, False: 2.23M]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
2.23M
    }
83
2.23M
    return std::forward<T>(val);
84
2.23M
}
Unexecuted instantiation: CScheduler*& inline_assertion_check<true, CScheduler*&>(CScheduler*&, char const*, int, char const*, char const*)
Unexecuted instantiation: wallet::CWalletTx const*&& inline_assertion_check<true, wallet::CWalletTx const*>(wallet::CWalletTx const*&&, char const*, int, char const*, char const*)
Unexecuted instantiation: wallet::LegacyDataSPKM*& inline_assertion_check<false, wallet::LegacyDataSPKM*&>(wallet::LegacyDataSPKM*&, char const*, int, char const*, char const*)
Unexecuted instantiation: std::optional<long> const& inline_assertion_check<true, std::optional<long> const&>(std::optional<long> const&, char const*, int, char const*, char const*)
std::unique_ptr<wallet::SQliteExecHandler, std::default_delete<wallet::SQliteExecHandler> >& inline_assertion_check<true, std::unique_ptr<wallet::SQliteExecHandler, std::default_delete<wallet::SQliteExecHandler> >&>(std::unique_ptr<wallet::SQliteExecHandler, std::default_delete<wallet::SQliteExecHandler> >&, char const*, int, char const*, char const*)
Line
Count
Source
77
199k
{
78
199k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
199k
        if (!val) {
  Branch (79:13): [True: 0, False: 199k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
199k
    }
83
199k
    return std::forward<T>(val);
84
199k
}
Unexecuted instantiation: bool& inline_assertion_check<true, bool&>(bool&, char const*, int, char const*, char const*)
std::optional<fs::path> const& inline_assertion_check<true, std::optional<fs::path> const&>(std::optional<fs::path> const&, char const*, int, char const*, char const*)
Line
Count
Source
77
22.1k
{
78
22.1k
    if (IS_ASSERT || std::is_constant_evaluated() || G_FUZZING_BUILD || G_ABORT_ON_FAILED_ASSUME) {
  Branch (78:9): [Folded - Ignored]
  Branch (78:22): [Folded - Ignored]
  Branch (78:54): [Folded - Ignored]
  Branch (78:73): [Folded - Ignored]
79
22.1k
        if (!val) {
  Branch (79:13): [True: 0, False: 22.1k]
80
0
            assertion_fail(file, line, func, assertion);
81
0
        }
82
22.1k
    }
83
22.1k
    return std::forward<T>(val);
84
22.1k
}
Unexecuted instantiation: std::optional<CMutableTransaction>& inline_assertion_check<true, std::optional<CMutableTransaction>&>(std::optional<CMutableTransaction>&, char const*, int, char const*, char const*)
85
86
// All macros may use __func__ inside a lambda, so put them under nolint.
87
// NOLINTBEGIN(bugprone-lambda-function-name)
88
89
0
#define STR_INTERNAL_BUG(msg) StrFormatInternalBug((msg), __FILE__, __LINE__, __func__)
90
91
/**
92
 * Identity function. Throw a NonFatalCheckError when the condition evaluates to false
93
 *
94
 * This should only be used
95
 * - where the condition is assumed to be true, not for error handling or validating user input
96
 * - where a failure to fulfill the condition is recoverable and does not abort the program
97
 *
98
 * For example in RPC code, where it is undesirable to crash the whole program, this can be generally used to replace
99
 * asserts or recoverable logic errors. A NonFatalCheckError in RPC code is caught and passed as a string to the RPC
100
 * caller, which can then report the issue to the developers.
101
 */
102
#define CHECK_NONFATAL(condition) \
103
91.0M
    inline_check_non_fatal(condition, __FILE__, __LINE__, __func__, #condition)
Unexecuted instantiation: blockchain.cpp:GetUTXOStats(CCoinsView*, node::BlockManager&, kernel::CoinStatsHashType, std::function<void ()> const&, CBlockIndex const*, bool)::$_0::operator()() const
Unexecuted instantiation: blockchain.cpp:scanblocks()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::{lambda()#2}::operator()() const
104
105
/** Identity function. Abort if the value compares equal to zero */
106
132M
#define Assert(val) inline_assertion_check<true>(val, __FILE__, __LINE__, __func__, #val)
107
108
/**
109
 * Assume is the identity function.
110
 *
111
 * - Should be used to run non-fatal checks. In debug builds it behaves like
112
 *   Assert()/assert() to notify developers and testers about non-fatal errors.
113
 *   In production it doesn't warn or log anything.
114
 * - For fatal errors, use Assert().
115
 * - For non-fatal errors in interactive sessions (e.g. RPC or command line
116
 *   interfaces), CHECK_NONFATAL() might be more appropriate.
117
 */
118
158M
#define Assume(val) inline_assertion_check<false>(val, __FILE__, __LINE__, __func__, #val)
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage(CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DataStream&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, std::atomic<bool> const&)::$_1::operator()() const
Line
Count
Source
118
266k
#define Assume(val) inline_assertion_check<false>(val, __FILE__, __LINE__, __func__, #val)
  Branch (118:51): [True: 88.7k, False: 0]
  Branch (118:51): [True: 88.7k, False: 0]
Unexecuted instantiation: mini_miner.cpp:auto node::MiniMiner::SanityCheck() const::$_0::operator()<std::_Rb_tree_iterator<std::pair<uint256 const, node::MiniMinerMempoolEntry> > >(std::_Rb_tree_iterator<std::pair<uint256 const, node::MiniMinerMempoolEntry> > const&) const
Unexecuted instantiation: mini_miner.cpp:auto node::MiniMiner::SanityCheck() const::$_1::operator()<uint256>(uint256 const&) const
ephemeral_policy.cpp:auto CheckEphemeralSpends(std::vector<std::shared_ptr<CTransaction const>, std::allocator<std::shared_ptr<CTransaction const> > > const&, CFeeRate, CTxMemPool const&, TxValidationState&, transaction_identifier<true>&)::$_0::operator()<std::shared_ptr<CTransaction const> >(std::shared_ptr<CTransaction const> const&) const
Line
Count
Source
118
53.6k
#define Assume(val) inline_assertion_check<false>(val, __FILE__, __LINE__, __func__, #val)
Unexecuted instantiation: scriptpubkeyman.cpp:wallet::DescriptorScriptPubKeyMan::GetKey(CKeyID const&) const::$_0::operator()(std::vector<unsigned char, secure_allocator<unsigned char> > const&) const
Unexecuted instantiation: wallet.cpp:wallet::CWallet::GetScriptPubKeyMans(CScript const&) const::$_0::operator()(wallet::ScriptPubKeyMan*) const
  Branch (118:51): [True: 88.7k, False: 0]
  Branch (118:51): [True: 88.7k, False: 0]
  Branch (118:51): [True: 0, False: 0]
  Branch (118:51): [True: 0, False: 0]
119
120
/**
121
 * NONFATAL_UNREACHABLE() is a macro that is used to mark unreachable code. It throws a NonFatalCheckError.
122
 */
123
#define NONFATAL_UNREACHABLE()                                        \
124
0
    throw NonFatalCheckError(                                         \
125
0
        "Unreachable code reached (non-fatal)", __FILE__, __LINE__, __func__)
126
127
// NOLINTEND(bugprone-lambda-function-name)
128
129
#endif // BITCOIN_UTIL_CHECK_H