Coverage Report

Created: 2026-07-14 18:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/bitcoin/src/util/check.h
Line
Count
Source
1
// Copyright (c) 2019-present 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
// We use `util/check.h` to provide the `assert()` macro
12
// to ensure that `NDEBUG` is not defined.
13
#include <cassert> // IWYU pragma: export
14
#include <source_location>
15
#include <stdexcept>
16
#include <string>
17
#include <string_view>
18
#include <type_traits>
19
#include <utility>
20
21
constexpr bool G_FUZZING_BUILD{
22
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
23
    true
24
#else
25
    false
26
#endif
27
};
28
constexpr bool G_ABORT_ON_FAILED_ASSUME{G_FUZZING_BUILD ||
29
#ifdef ABORT_ON_FAILED_ASSUME
30
    true
31
#else
32
    false
33
#endif
34
};
35
36
extern std::atomic<bool> g_enable_dynamic_fuzz_determinism;
37
38
inline bool EnableFuzzDeterminism()
39
472k
{
40
472k
    if constexpr (G_FUZZING_BUILD) {
41
472k
        return true;
42
    } else if constexpr (!G_ABORT_ON_FAILED_ASSUME) {
43
        // Running fuzz tests is always disabled if Assume() doesn't abort
44
        // (ie, non-fuzz non-debug builds), as otherwise tests which
45
        // should fail due to a failing Assume may still pass. As such,
46
        // we also statically disable fuzz determinism in that case.
47
        return false;
48
    } else {
49
        return g_enable_dynamic_fuzz_determinism;
50
    }
51
472k
}
52
53
extern bool g_detail_test_only_CheckFailuresAreExceptionsNotAborts;
54
struct test_only_CheckFailuresAreExceptionsNotAborts {
55
0
    test_only_CheckFailuresAreExceptionsNotAborts() { g_detail_test_only_CheckFailuresAreExceptionsNotAborts = true; };
56
0
    ~test_only_CheckFailuresAreExceptionsNotAborts() { g_detail_test_only_CheckFailuresAreExceptionsNotAborts = false; };
57
};
58
59
std::string StrFormatInternalBug(std::string_view msg, const std::source_location& loc);
60
61
class NonFatalCheckError : public std::runtime_error
62
{
63
public:
64
    NonFatalCheckError(std::string_view msg, const std::source_location& loc);
65
};
66
67
/** Internal helper */
68
void assertion_fail(const std::source_location& loc, std::string_view assertion);
69
70
/** Helper for CHECK_NONFATAL() */
71
template <typename T>
72
T&& inline_check_non_fatal(LIFETIMEBOUND T&& val, const std::source_location& loc, std::string_view assertion)
73
3.57M
{
74
3.57M
    if (!val) {
  Branch (74:9): [True: 0, False: 3.28M]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 50.1k]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 42.5k]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 42.5k]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 140k]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 6.17k]
  Branch (74:9): [True: 0, False: 6.17k]
  Branch (74:9): [True: 0, False: 0]
  Branch (74:9): [True: 0, False: 0]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
3.57M
    return std::forward<T>(val);
81
3.57M
}
bool&& inline_check_non_fatal<bool>(bool&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
73
3.28M
{
74
3.28M
    if (!val) {
  Branch (74:9): [True: 0, False: 3.28M]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
3.28M
    return std::forward<T>(val);
81
3.28M
}
Unexecuted instantiation: ValidationSignals* const& inline_check_non_fatal<ValidationSignals* const&>(ValidationSignals* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: CBlockIndex const*&& inline_check_non_fatal<CBlockIndex const*>(CBlockIndex const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: CBlockIndex const*& inline_check_non_fatal<CBlockIndex const*&>(CBlockIndex const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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> >&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: node::BlockManager*&& inline_check_non_fatal<node::BlockManager*>(node::BlockManager*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::shared_ptr<CTransaction const>&& inline_check_non_fatal<std::shared_ptr<CTransaction const> >(std::shared_ptr<CTransaction const>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: CBlockIndex*& inline_check_non_fatal<CBlockIndex*&>(CBlockIndex*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::optional<interfaces::BlockRef>&& inline_check_non_fatal<std::optional<interfaces::BlockRef> >(std::optional<interfaces::BlockRef>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
73
50.1k
{
74
50.1k
    if (!val) {
  Branch (74:9): [True: 0, False: 50.1k]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
50.1k
    return std::forward<T>(val);
81
50.1k
}
Unexecuted instantiation: CBlockIndex*&& inline_check_non_fatal<CBlockIndex*>(CBlockIndex*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: CBlockIndex* const& inline_check_non_fatal<CBlockIndex* const&>(CBlockIndex* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: 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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::optional<kernel::CCoinsStats>& inline_check_non_fatal<std::optional<kernel::CCoinsStats>&>(std::optional<kernel::CCoinsStats>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
73
42.5k
{
74
42.5k
    if (!val) {
  Branch (74:9): [True: 0, False: 42.5k]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
42.5k
    return std::forward<T>(val);
81
42.5k
}
Unexecuted instantiation: std::optional<CFeeRate> const& inline_check_non_fatal<std::optional<CFeeRate> const&>(std::optional<CFeeRate> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
73
42.5k
{
74
42.5k
    if (!val) {
  Branch (74:9): [True: 0, False: 42.5k]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
42.5k
    return std::forward<T>(val);
81
42.5k
}
Unexecuted instantiation: std::optional<CMutableTransaction>&& inline_check_non_fatal<std::optional<CMutableTransaction> >(std::optional<CMutableTransaction>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
std::function<bool ()>& inline_check_non_fatal<std::function<bool ()>&>(std::function<bool ()>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
73
140k
{
74
140k
    if (!val) {
  Branch (74:9): [True: 0, False: 140k]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
140k
    return std::forward<T>(val);
81
140k
}
Unexecuted instantiation: bool& inline_check_non_fatal<bool&>(bool&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: wallet::DescriptorScriptPubKeyMan*& inline_check_non_fatal<wallet::DescriptorScriptPubKeyMan*&>(wallet::DescriptorScriptPubKeyMan*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
JSONRPCRequest const*& inline_check_non_fatal<JSONRPCRequest const*&>(JSONRPCRequest const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
73
6.17k
{
74
6.17k
    if (!val) {
  Branch (74:9): [True: 0, False: 6.17k]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
6.17k
    return std::forward<T>(val);
81
6.17k
}
UniValue const*& inline_check_non_fatal<UniValue const*&>(UniValue const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
73
6.17k
{
74
6.17k
    if (!val) {
  Branch (74:9): [True: 0, False: 6.17k]
75
0
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
0
            assertion_fail(loc, assertion);
77
0
        }
78
0
        throw NonFatalCheckError{assertion, loc};
79
0
    }
80
6.17k
    return std::forward<T>(val);
81
6.17k
}
Unexecuted instantiation: std::optional<arith_uint256>&& inline_check_non_fatal<std::optional<arith_uint256> >(std::optional<arith_uint256>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: bool const& inline_check_non_fatal<bool const&>(bool const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
82
83
#if defined(NDEBUG)
84
#error "Cannot compile without assertions!"
85
#endif
86
87
/** Helper for Assert()/Assume() */
88
template <bool IS_ASSERT, typename T>
89
constexpr T&& inline_assertion_check(LIFETIMEBOUND T&& val, [[maybe_unused]] const std::source_location& loc, [[maybe_unused]] std::string_view assertion)
90
2.69G
{
91
2.69G
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
2.69G
        if (!val) {
  Branch (92:13): [True: 0, False: 150k]
  Branch (92:13): [True: 0, False: 108]
  Branch (92:13): [True: 0, False: 2.44G]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 27]
  Branch (92:13): [True: 0, False: 27]
  Branch (92:13): [True: 0, False: 81]
  Branch (92:13): [True: 0, False: 3.35M]
  Branch (92:13): [True: 0, False: 27]
  Branch (92:13): [True: 0, False: 150k]
  Branch (92:13): [True: 0, False: 27]
  Branch (92:13): [True: 0, False: 1.12M]
  Branch (92:13): [True: 0, False: 27]
  Branch (92:13): [True: 0, False: 2.63M]
  Branch (92:13): [True: 0, False: 192k]
  Branch (92:13): [True: 0, False: 11.2M]
  Branch (92:13): [True: 0, False: 31.6M]
  Branch (92:13): [True: 0, False: 30.6M]
  Branch (92:13): [True: 0, False: 5.99M]
  Branch (92:13): [True: 0, False: 16.7M]
  Branch (92:13): [True: 0, False: 16.7M]
  Branch (92:13): [True: 0, False: 94.7M]
  Branch (92:13): [True: 0, False: 55.7k]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 510k]
  Branch (92:13): [True: 0, False: 43.1k]
  Branch (92:13): [True: 0, False: 43.1k]
  Branch (92:13): [True: 0, False: 21.4k]
  Branch (92:13): [True: 0, False: 33.2k]
  Branch (92:13): [True: 0, False: 4.25M]
  Branch (92:13): [True: 0, False: 69.5k]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 9.02k]
  Branch (92:13): [True: 0, False: 598k]
  Branch (92:13): [True: 0, False: 1.47M]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 42.9k]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 2.57k]
  Branch (92:13): [True: 0, False: 2.04M]
  Branch (92:13): [True: 0, False: 27]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 19.2M]
  Branch (92:13): [True: 0, False: 38.1k]
  Branch (92:13): [True: 0, False: 10.0M]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 42.9k]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 449k]
  Branch (92:13): [True: 0, False: 86.2k]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 27]
  Branch (92:13): [True: 0, False: 43.1k]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 54]
  Branch (92:13): [True: 0, False: 0]
  Branch (92:13): [True: 0, False: 0]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.69G
    }
96
2.69G
    return std::forward<T>(val);
97
2.69G
}
ArgsManager*& inline_assertion_check<true, ArgsManager*&>(ArgsManager*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
150k
{
91
150k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
150k
        if (!val) {
  Branch (92:13): [True: 0, False: 150k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
150k
    }
96
150k
    return std::forward<T>(val);
97
150k
}
util::SignalInterrupt*& inline_assertion_check<true, util::SignalInterrupt*&>(util::SignalInterrupt*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
108
{
91
108
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
108
        if (!val) {
  Branch (92:13): [True: 0, False: 108]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
108
    }
96
108
    return std::forward<T>(val);
97
108
}
bool&& inline_assertion_check<false, bool>(bool&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
2.44G
{
91
2.44G
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
2.44G
        if (!val) {
  Branch (92:13): [True: 0, False: 2.44G]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.44G
    }
96
2.44G
    return std::forward<T>(val);
97
2.44G
}
Unexecuted instantiation: std::optional<util::SignalInterrupt>& inline_assertion_check<true, std::optional<util::SignalInterrupt>&>(std::optional<util::SignalInterrupt>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
std::function<bool ()>& inline_assertion_check<true, std::function<bool ()>&>(std::function<bool ()>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
27
{
91
27
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
27
        if (!val) {
  Branch (92:13): [True: 0, False: 27]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
27
    }
96
27
    return std::forward<T>(val);
97
27
}
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
27
{
91
27
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
27
        if (!val) {
  Branch (92:13): [True: 0, False: 27]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
27
    }
96
27
    return std::forward<T>(val);
97
27
}
util::Result<void>&& inline_assertion_check<true, util::Result<void> >(util::Result<void>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
81
{
91
81
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
81
        if (!val) {
  Branch (92:13): [True: 0, False: 81]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
81
    }
96
81
    return std::forward<T>(val);
97
81
}
bool&& inline_assertion_check<true, bool>(bool&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
3.35M
{
91
3.35M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
3.35M
        if (!val) {
  Branch (92:13): [True: 0, False: 3.35M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3.35M
    }
96
3.35M
    return std::forward<T>(val);
97
3.35M
}
util::Result<node::BlockCreateOptions>& inline_assertion_check<true, util::Result<node::BlockCreateOptions>&>(util::Result<node::BlockCreateOptions>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
27
{
91
27
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
27
        if (!val) {
  Branch (92:13): [True: 0, False: 27]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
27
    }
96
27
    return std::forward<T>(val);
97
27
}
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
150k
{
91
150k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
150k
        if (!val) {
  Branch (92:13): [True: 0, False: 150k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
150k
    }
96
150k
    return std::forward<T>(val);
97
150k
}
CTxMemPool*&& inline_assertion_check<true, CTxMemPool*>(CTxMemPool*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
27
{
91
27
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
27
        if (!val) {
  Branch (92:13): [True: 0, False: 27]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
27
    }
96
27
    return std::forward<T>(val);
97
27
}
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
1.12M
{
91
1.12M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
1.12M
        if (!val) {
  Branch (92:13): [True: 0, False: 1.12M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.12M
    }
96
1.12M
    return std::forward<T>(val);
97
1.12M
}
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
27
{
91
27
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
27
        if (!val) {
  Branch (92:13): [True: 0, False: 27]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
27
    }
96
27
    return std::forward<T>(val);
97
27
}
CBlockIndex*&& inline_assertion_check<true, CBlockIndex*>(CBlockIndex*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
2.63M
{
91
2.63M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
2.63M
        if (!val) {
  Branch (92:13): [True: 0, False: 2.63M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.63M
    }
96
2.63M
    return std::forward<T>(val);
97
2.63M
}
CBlockIndex const*& inline_assertion_check<true, CBlockIndex const*&>(CBlockIndex const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
192k
{
91
192k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
192k
        if (!val) {
  Branch (92:13): [True: 0, False: 192k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
192k
    }
96
192k
    return std::forward<T>(val);
97
192k
}
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&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
11.2M
{
91
11.2M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
11.2M
        if (!val) {
  Branch (92:13): [True: 0, False: 11.2M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
11.2M
    }
96
11.2M
    return std::forward<T>(val);
97
11.2M
}
int&& inline_assertion_check<false, int>(int&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
31.6M
{
91
31.6M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
31.6M
        if (!val) {
  Branch (92:13): [True: 0, False: 31.6M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
31.6M
    }
96
31.6M
    return std::forward<T>(val);
97
31.6M
}
unsigned char const& inline_assertion_check<false, unsigned char const&>(unsigned char const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
30.6M
{
91
30.6M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
30.6M
        if (!val) {
  Branch (92:13): [True: 0, False: 30.6M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
30.6M
    }
96
30.6M
    return std::forward<T>(val);
97
30.6M
}
CCoinsView*& inline_assertion_check<true, CCoinsView*&>(CCoinsView*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
5.99M
{
91
5.99M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
5.99M
        if (!val) {
  Branch (92:13): [True: 0, False: 5.99M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
5.99M
    }
96
5.99M
    return std::forward<T>(val);
97
5.99M
}
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
16.7M
{
91
16.7M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
16.7M
        if (!val) {
  Branch (92:13): [True: 0, False: 16.7M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
16.7M
    }
96
16.7M
    return std::forward<T>(val);
97
16.7M
}
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
16.7M
{
91
16.7M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
16.7M
        if (!val) {
  Branch (92:13): [True: 0, False: 16.7M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
16.7M
    }
96
16.7M
    return std::forward<T>(val);
97
16.7M
}
std::optional<arith_uint256> const& inline_assertion_check<true, std::optional<arith_uint256> const&>(std::optional<arith_uint256> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
94.7M
{
91
94.7M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
94.7M
        if (!val) {
  Branch (92:13): [True: 0, False: 94.7M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
94.7M
    }
96
94.7M
    return std::forward<T>(val);
97
94.7M
}
std::optional<uint256> const& inline_assertion_check<true, std::optional<uint256> const&>(std::optional<uint256> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
55.7k
{
91
55.7k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
55.7k
        if (!val) {
  Branch (92:13): [True: 0, False: 55.7k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
55.7k
    }
96
55.7k
    return std::forward<T>(val);
97
55.7k
}
Unexecuted instantiation: ThreadPool::SubmitError*&& inline_assertion_check<true, ThreadPool::SubmitError*>(ThreadPool::SubmitError*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*&& inline_assertion_check<true, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*&& inline_assertion_check<true, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
uint256 const* const& inline_assertion_check<true, uint256 const* const&>(uint256 const* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
510k
{
91
510k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
510k
        if (!val) {
  Branch (92:13): [True: 0, False: 510k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
510k
    }
96
510k
    return std::forward<T>(val);
97
510k
}
CBlockUndo const* const& inline_assertion_check<true, CBlockUndo const* const&>(CBlockUndo const* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
43.1k
{
91
43.1k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
43.1k
        if (!val) {
  Branch (92:13): [True: 0, False: 43.1k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
43.1k
    }
96
43.1k
    return std::forward<T>(val);
97
43.1k
}
CBlock const* const& inline_assertion_check<true, CBlock const* const&>(CBlock const* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
43.1k
{
91
43.1k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
43.1k
        if (!val) {
  Branch (92:13): [True: 0, False: 43.1k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
43.1k
    }
96
43.1k
    return std::forward<T>(val);
97
43.1k
}
std::optional<uint256>&& inline_assertion_check<true, std::optional<uint256> >(std::optional<uint256>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
21.4k
{
91
21.4k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
21.4k
        if (!val) {
  Branch (92:13): [True: 0, False: 21.4k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
21.4k
    }
96
21.4k
    return std::forward<T>(val);
97
21.4k
}
CBlockIndex*& inline_assertion_check<true, CBlockIndex*&>(CBlockIndex*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
33.2k
{
91
33.2k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
33.2k
        if (!val) {
  Branch (92:13): [True: 0, False: 33.2k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
33.2k
    }
96
33.2k
    return std::forward<T>(val);
97
33.2k
}
bool& inline_assertion_check<false, bool&>(bool&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
4.25M
{
91
4.25M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
4.25M
        if (!val) {
  Branch (92:13): [True: 0, False: 4.25M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
4.25M
    }
96
4.25M
    return std::forward<T>(val);
97
4.25M
}
net_processing.cpp:(anonymous namespace)::CNodeState*&& inline_assertion_check<true, (anonymous namespace)::CNodeState*>((anonymous namespace)::CNodeState*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
69.5k
{
91
69.5k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
69.5k
        if (!val) {
  Branch (92:13): [True: 0, False: 69.5k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
69.5k
    }
96
69.5k
    return std::forward<T>(val);
97
69.5k
}
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>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
CBlockIndex*&& inline_assertion_check<false, CBlockIndex*>(CBlockIndex*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
9.02k
{
91
9.02k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
9.02k
        if (!val) {
  Branch (92:13): [True: 0, False: 9.02k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
9.02k
    }
96
9.02k
    return std::forward<T>(val);
97
9.02k
}
std::optional<PresaltedSipHasher>& inline_assertion_check<true, std::optional<PresaltedSipHasher>&>(std::optional<PresaltedSipHasher>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
598k
{
91
598k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
598k
        if (!val) {
  Branch (92:13): [True: 0, False: 598k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
598k
    }
96
598k
    return std::forward<T>(val);
97
598k
}
unsigned int&& inline_assertion_check<false, unsigned int>(unsigned int&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
1.47M
{
91
1.47M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
1.47M
        if (!val) {
  Branch (92:13): [True: 0, False: 1.47M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.47M
    }
96
1.47M
    return std::forward<T>(val);
97
1.47M
}
Unexecuted instantiation: std::optional<AssumeutxoData> const& inline_assertion_check<true, std::optional<AssumeutxoData> const&>(std::optional<AssumeutxoData> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
std::optional<node::BlockfileCursor>& inline_assertion_check<true, std::optional<node::BlockfileCursor>&>(std::optional<node::BlockfileCursor>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
42.9k
{
91
42.9k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
42.9k
        if (!val) {
  Branch (92:13): [True: 0, False: 42.9k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
42.9k
    }
96
42.9k
    return std::forward<T>(val);
97
42.9k
}
Unexecuted instantiation: std::unique_ptr<node::KernelNotifications, std::default_delete<node::KernelNotifications> > const& inline_assertion_check<true, std::unique_ptr<node::KernelNotifications, std::default_delete<node::KernelNotifications> > const&>(std::unique_ptr<node::KernelNotifications, std::default_delete<node::KernelNotifications> > const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: util::SignalInterrupt* const& inline_assertion_check<true, util::SignalInterrupt* const&>(util::SignalInterrupt* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: node::NodeContext*& inline_assertion_check<true, node::NodeContext*&>(node::NodeContext*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: node::NodeContext*&& inline_assertion_check<true, node::NodeContext*>(node::NodeContext*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: interfaces::WalletLoader*& inline_assertion_check<true, interfaces::WalletLoader*&>(interfaces::WalletLoader*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::unique_ptr<ChainstateManager, std::default_delete<ChainstateManager> > const& inline_assertion_check<true, std::unique_ptr<ChainstateManager, std::default_delete<ChainstateManager> > const&>(std::unique_ptr<ChainstateManager, std::default_delete<ChainstateManager> > const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::optional<unsigned long> const& inline_assertion_check<true, std::optional<unsigned long> const&>(std::optional<unsigned long> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::optional<uint256> const& inline_assertion_check<false, std::optional<uint256> const&>(std::optional<uint256> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::optional<uint256>&& inline_assertion_check<false, std::optional<uint256> >(std::optional<uint256>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
CBlockIndex const*&& inline_assertion_check<true, CBlockIndex const*>(CBlockIndex const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
2.57k
{
91
2.57k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
2.57k
        if (!val) {
  Branch (92:13): [True: 0, False: 2.57k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.57k
    }
96
2.57k
    return std::forward<T>(val);
97
2.57k
}
bool const& inline_assertion_check<false, bool const&>(bool const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
2.04M
{
91
2.04M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
2.04M
        if (!val) {
  Branch (92:13): [True: 0, False: 2.04M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.04M
    }
96
2.04M
    return std::forward<T>(val);
97
2.04M
}
CTxMemPoolEntry const*&& inline_assertion_check<true, CTxMemPoolEntry const*>(CTxMemPoolEntry const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
27
{
91
27
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
27
        if (!val) {
  Branch (92:13): [True: 0, False: 27]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
27
    }
96
27
    return std::forward<T>(val);
97
27
}
Unexecuted instantiation: node::ReadRawError const*&& inline_assertion_check<true, node::ReadRawError const*>(node::ReadRawError const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
unsigned long& inline_assertion_check<false, unsigned long&>(unsigned long&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
19.2M
{
91
19.2M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
19.2M
        if (!val) {
  Branch (92:13): [True: 0, False: 19.2M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
19.2M
    }
96
19.2M
    return std::forward<T>(val);
97
19.2M
}
TxGraph::Ref const*& inline_assertion_check<false, TxGraph::Ref const*&>(TxGraph::Ref const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
38.1k
{
91
38.1k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
38.1k
        if (!val) {
  Branch (92:13): [True: 0, False: 38.1k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
38.1k
    }
96
38.1k
    return std::forward<T>(val);
97
38.1k
}
txgraph.cpp:(anonymous namespace)::Cluster*& inline_assertion_check<false, (anonymous namespace)::Cluster*&>((anonymous namespace)::Cluster*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
10.0M
{
91
10.0M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
10.0M
        if (!val) {
  Branch (92:13): [True: 0, False: 10.0M]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
10.0M
    }
96
10.0M
    return std::forward<T>(val);
97
10.0M
}
Unexecuted instantiation: unsigned long const& inline_assertion_check<false, unsigned long const&>(unsigned long const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
std::shared_ptr<CBlock const>& inline_assertion_check<true, std::shared_ptr<CBlock const>&>(std::shared_ptr<CBlock const>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
42.9k
{
91
42.9k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
42.9k
        if (!val) {
  Branch (92:13): [True: 0, False: 42.9k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
42.9k
    }
96
42.9k
    return std::forward<T>(val);
97
42.9k
}
Unexecuted instantiation: uint256 const*& inline_assertion_check<true, uint256 const*&>(uint256 const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
std::optional<int> const& inline_assertion_check<true, std::optional<int> const&>(std::optional<int> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
449k
{
91
449k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
449k
        if (!val) {
  Branch (92:13): [True: 0, False: 449k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
449k
    }
96
449k
    return std::forward<T>(val);
97
449k
}
CBlockIndex* const& inline_assertion_check<false, CBlockIndex* const&>(CBlockIndex* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
86.2k
{
91
86.2k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
86.2k
        if (!val) {
  Branch (92:13): [True: 0, False: 86.2k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
86.2k
    }
96
86.2k
    return std::forward<T>(val);
97
86.2k
}
Unexecuted instantiation: Chainstate*&& inline_assertion_check<true, Chainstate*>(Chainstate*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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> >&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
27
{
91
27
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
27
        if (!val) {
  Branch (92:13): [True: 0, False: 27]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
27
    }
96
27
    return std::forward<T>(val);
97
27
}
CScheduler*& inline_assertion_check<true, CScheduler*&>(CScheduler*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
43.1k
{
91
43.1k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
43.1k
        if (!val) {
  Branch (92:13): [True: 0, False: 43.1k]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
43.1k
    }
96
43.1k
    return std::forward<T>(val);
97
43.1k
}
Unexecuted instantiation: util::Expected<std::vector<wallet::WalletDescInfo, std::allocator<wallet::WalletDescInfo> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >& inline_assertion_check<true, util::Expected<std::vector<wallet::WalletDescInfo, std::allocator<wallet::WalletDescInfo> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&>(util::Expected<std::vector<wallet::WalletDescInfo, std::allocator<wallet::WalletDescInfo> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::optional<OutputType>&& inline_assertion_check<true, std::optional<OutputType> >(std::optional<OutputType>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: wallet::CWalletTx const*&& inline_assertion_check<true, wallet::CWalletTx const*>(wallet::CWalletTx const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::optional<long> const& inline_assertion_check<true, std::optional<long> const&>(std::optional<long> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: unsigned long&& inline_assertion_check<true, unsigned long>(unsigned long&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: ArgsManager* const& inline_assertion_check<true, ArgsManager* const&>(ArgsManager* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: wallet::LegacyDataSPKM*& inline_assertion_check<false, wallet::LegacyDataSPKM*&>(wallet::LegacyDataSPKM*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: 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> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: bool& inline_assertion_check<true, bool&>(bool&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
std::optional<fs::path> const& inline_assertion_check<true, std::optional<fs::path> const&>(std::optional<fs::path> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Line
Count
Source
90
54
{
91
54
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
  Branch (91:9): [Folded - Ignored]
  Branch (91:22): [Folded - Ignored]
  Branch (91:54): [Folded - Ignored]
92
54
        if (!val) {
  Branch (92:13): [True: 0, False: 54]
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
54
    }
96
54
    return std::forward<T>(val);
97
54
}
Unexecuted instantiation: std::optional<std::pair<XOnlyPubKey, bool> >& inline_assertion_check<false, std::optional<std::pair<XOnlyPubKey, bool> >&>(std::optional<std::pair<XOnlyPubKey, bool> >&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
Unexecuted instantiation: std::map<uint256, MuSig2SecNonce, std::less<uint256>, std::allocator<std::pair<uint256 const, MuSig2SecNonce> > >* const& inline_assertion_check<false, std::map<uint256, MuSig2SecNonce, std::less<uint256>, std::allocator<std::pair<uint256 const, MuSig2SecNonce> > >* const&>(std::map<uint256, MuSig2SecNonce, std::less<uint256>, std::allocator<std::pair<uint256 const, MuSig2SecNonce> > >* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char> >)
98
99
0
#define STR_INTERNAL_BUG(msg) StrFormatInternalBug((msg), std::source_location::current())
100
101
/**
102
 * Identity function. Throw a NonFatalCheckError when the condition evaluates to false
103
 *
104
 * This should only be used
105
 * - where the condition is assumed to be true, not for error handling or validating user input
106
 * - where a failure to fulfill the condition is recoverable and does not abort the program
107
 *
108
 * For example in RPC code, where it is undesirable to crash the whole program, this can be generally used to replace
109
 * asserts or recoverable logic errors. A NonFatalCheckError in RPC code is caught and passed as a string to the RPC
110
 * caller, which can then report the issue to the developers.
111
 */
112
#define CHECK_NONFATAL(condition) \
113
4.66M
    inline_check_non_fatal(condition, std::source_location::current(), #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:gettxoutsetinfo()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::{lambda()#1}::operator()() const
Unexecuted instantiation: blockchain.cpp:scanblocks()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::{lambda()#2}::operator()() const
114
115
/** Identity function. Abort if the value compares equal to zero */
116
155M
#define Assert(val) inline_assertion_check<true>(val, std::source_location::current(), #val)
117
118
/**
119
 * Assume is the identity function.
120
 *
121
 * - Should be used to run non-fatal checks. In debug builds it behaves like
122
 *   Assert()/assert() to notify developers and testers about non-fatal errors.
123
 *   In production it doesn't warn or log anything.
124
 * - For fatal errors, use Assert().
125
 * - For non-fatal errors in interactive sessions (e.g. RPC or command line
126
 *   interfaces), CHECK_NONFATAL() might be more appropriate.
127
 */
128
2.54G
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
httpserver.cpp:auto http_bitcoin::HTTPServer::AcceptConnection(Sock const&, CService&)::$_0::operator()<std::shared_ptr<Sock> >(std::shared_ptr<Sock> const&) const
Line
Count
Source
128
668k
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
net_processing.cpp:(anonymous namespace)::PeerManagerImpl::ProcessMessage((anonymous namespace)::Peer&, CNode&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DataStream&, std::chrono::time_point<NodeClock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > >, std::atomic<bool> const&)::$_2::operator()() const
Line
Count
Source
128
93
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
  Branch (128:51): [True: 31, False: 0]
  Branch (128:51): [True: 31, False: 0]
Unexecuted instantiation: mini_miner.cpp:auto node::MiniMiner::SanityCheck() const::$_0::operator()<std::_Rb_tree_iterator<std::pair<transaction_identifier<false> const, node::MiniMinerMempoolEntry> > >(std::_Rb_tree_iterator<std::pair<transaction_identifier<false> const, node::MiniMinerMempoolEntry> > const&) const
Unexecuted instantiation: mini_miner.cpp:auto node::MiniMiner::SanityCheck() const::$_1::operator()<transaction_identifier<false> >(transaction_identifier<false> const&) const
Unexecuted instantiation: validation.cpp:auto ChainstateManager::ReceivedBlockTransactions(CBlock const&, CBlockIndex*, FlatFilePos const&)::$_0::operator()<std::unique_ptr<Chainstate, std::default_delete<Chainstate> > >(std::unique_ptr<Chainstate, std::default_delete<Chainstate> > 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
128
388k
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #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 (128:51): [True: 31, False: 0]
  Branch (128:51): [True: 31, False: 0]
129
130
/**
131
 * NONFATAL_UNREACHABLE() is a macro that is used to mark unreachable code. It throws a NonFatalCheckError.
132
 */
133
#define NONFATAL_UNREACHABLE() \
134
0
    throw NonFatalCheckError { "Unreachable code reached (non-fatal)", std::source_location::current() }
135
136
#if defined(__has_feature)
137
#    if __has_feature(address_sanitizer)
138
#       include <sanitizer/asan_interface.h>
139
#    endif
140
#endif
141
142
#ifndef ASAN_POISON_MEMORY_REGION
143
73.4M
#   define ASAN_POISON_MEMORY_REGION(addr, size) ((void)(addr), (void)(size))
144
98.0M
#   define ASAN_UNPOISON_MEMORY_REGION(addr, size) ((void)(addr), (void)(size))
145
#endif
146
147
#endif // BITCOIN_UTIL_CHECK_H