Coverage Report

Created: 2026-09-02 14:16

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/tmp/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
inline constexpr bool G_FUZZING_BUILD{
22
#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
23
    true
24
#else
25
    false
26
#endif
27
};
28
inline 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
2.09M
{
40
    if constexpr (G_FUZZING_BUILD) {
41
        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
2.09M
    } else {
49
2.09M
        return g_enable_dynamic_fuzz_determinism;
50
2.09M
    }
51
2.09M
}
52
53
extern bool g_detail_test_only_CheckFailuresAreExceptionsNotAborts;
54
struct test_only_CheckFailuresAreExceptionsNotAborts {
55
2
    test_only_CheckFailuresAreExceptionsNotAborts() { g_detail_test_only_CheckFailuresAreExceptionsNotAborts = true; };
56
2
    ~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. The noreturn enables optimizers to discard invalid paths.
68
[[noreturn]] 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
228M
{
74
228M
    if (!val) {
75
9
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
9
            assertion_fail(loc, assertion);
77
9
        }
78
9
        throw NonFatalCheckError{assertion, loc};
79
9
    }
80
228M
    return std::forward<T>(val);
81
228M
}
bool const& inline_check_non_fatal<bool const&>(bool const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
103
{
74
103
    if (!val) {
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
103
    return std::forward<T>(val);
81
103
}
bool&& inline_check_non_fatal<bool>(bool&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
222M
{
74
222M
    if (!val) {
75
9
        if constexpr (G_ABORT_ON_FAILED_ASSUME) {
76
9
            assertion_fail(loc, assertion);
77
9
        }
78
9
        throw NonFatalCheckError{assertion, loc};
79
9
    }
80
222M
    return std::forward<T>(val);
81
222M
}
bool& inline_check_non_fatal<bool&>(bool&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
6.02M
{
74
6.02M
    if (!val) {
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.02M
    return std::forward<T>(val);
81
6.02M
}
ValidationSignals* const& inline_check_non_fatal<ValidationSignals* const&>(ValidationSignals* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
14.9k
{
74
14.9k
    if (!val) {
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
14.9k
    return std::forward<T>(val);
81
14.9k
}
CBlockIndex const*&& inline_check_non_fatal<CBlockIndex const*>(CBlockIndex const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
173k
{
74
173k
    if (!val) {
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
173k
    return std::forward<T>(val);
81
173k
}
CBlockIndex const*& inline_check_non_fatal<CBlockIndex const*&>(CBlockIndex const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
158
{
74
158
    if (!val) {
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
158
    return std::forward<T>(val);
81
158
}
node::BlockManager*&& inline_check_non_fatal<node::BlockManager*>(node::BlockManager*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
11
{
74
11
    if (!val) {
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
11
    return std::forward<T>(val);
81
11
}
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>>)
CBlockIndex*& inline_check_non_fatal<CBlockIndex*&>(CBlockIndex*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
99
{
74
99
    if (!val) {
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
99
    return std::forward<T>(val);
81
99
}
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>>)
Line
Count
Source
73
119
{
74
119
    if (!val) {
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
119
    return std::forward<T>(val);
81
119
}
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
4.16k
{
74
4.16k
    if (!val) {
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
4.16k
    return std::forward<T>(val);
81
4.16k
}
CBlockIndex*&& inline_check_non_fatal<CBlockIndex*>(CBlockIndex*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
19.7k
{
74
19.7k
    if (!val) {
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
19.7k
    return std::forward<T>(val);
81
19.7k
}
CBlockIndex* const& inline_check_non_fatal<CBlockIndex* const&>(CBlockIndex* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
12
{
74
12
    if (!val) {
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
12
    return std::forward<T>(val);
81
12
}
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>>)
Line
Count
Source
73
19.4k
{
74
19.4k
    if (!val) {
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
19.4k
    return std::forward<T>(val);
81
19.4k
}
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>>)
Line
Count
Source
73
37
{
74
37
    if (!val) {
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
37
    return std::forward<T>(val);
81
37
}
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
159
{
74
159
    if (!val) {
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
159
    return std::forward<T>(val);
81
159
}
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>>)
Line
Count
Source
73
25
{
74
25
    if (!val) {
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
25
    return std::forward<T>(val);
81
25
}
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>>)
Line
Count
Source
73
33.6k
{
74
33.6k
    if (!val) {
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
33.6k
    return std::forward<T>(val);
81
33.6k
}
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
30
{
74
30
    if (!val) {
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
30
    return std::forward<T>(val);
81
30
}
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>>)
Line
Count
Source
73
53
{
74
53
    if (!val) {
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
53
    return std::forward<T>(val);
81
53
}
std::optional<PrecomputedTransactionData> const& inline_check_non_fatal<std::optional<PrecomputedTransactionData> const&>(std::optional<PrecomputedTransactionData> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
73
13
{
74
13
    if (!val) {
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
13
    return std::forward<T>(val);
81
13
}
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
1.02k
{
74
1.02k
    if (!val) {
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
1.02k
    return std::forward<T>(val);
81
1.02k
}
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
49.9k
{
74
49.9k
    if (!val) {
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
49.9k
    return std::forward<T>(val);
81
49.9k
}
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
45.7k
{
74
45.7k
    if (!val) {
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
45.7k
    return std::forward<T>(val);
81
45.7k
}
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>>)
Line
Count
Source
73
22.8k
{
74
22.8k
    if (!val) {
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
22.8k
    return std::forward<T>(val);
81
22.8k
}
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.68G
{
91
2.68G
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2.68G
        if (!val) {
93
2
            assertion_fail(loc, assertion);
94
2
        }
95
2.68G
    }
96
2.68G
    return std::forward<T>(val);
97
2.68G
}
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.54G
{
91
2.54G
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2.54G
        if (!val) {
93
1
            assertion_fail(loc, assertion);
94
1
        }
95
2.54G
    }
96
2.54G
    return std::forward<T>(val);
97
2.54G
}
FeeRateEstimationError const*&& inline_assertion_check<true, FeeRateEstimationError const*>(FeeRateEstimationError const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1.61k
{
91
1.61k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.61k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.61k
    }
96
1.61k
    return std::forward<T>(val);
97
1.61k
}
bool& inline_assertion_check<true, bool&>(bool&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
621
{
91
621
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
621
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
621
    }
96
621
    return std::forward<T>(val);
97
621
}
bool&& inline_assertion_check<true, bool>(bool&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
18.0M
{
91
18.0M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
18.0M
        if (!val) {
93
1
            assertion_fail(loc, assertion);
94
1
        }
95
18.0M
    }
96
18.0M
    return std::forward<T>(val);
97
18.0M
}
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
904k
{
91
904k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
904k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
904k
    }
96
904k
    return std::forward<T>(val);
97
904k
}
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
2.14M
{
91
2.14M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2.14M
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.14M
    }
96
2.14M
    return std::forward<T>(val);
97
2.14M
}
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
2.13M
{
91
2.13M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2.13M
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.13M
    }
96
2.13M
    return std::forward<T>(val);
97
2.13M
}
int&& inline_assertion_check<false, int>(int&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
56.8M
{
91
56.8M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
56.8M
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
56.8M
    }
96
56.8M
    return std::forward<T>(val);
97
56.8M
}
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
1.26M
{
91
1.26M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.26M
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.26M
    }
96
1.26M
    return std::forward<T>(val);
97
1.26M
}
CCoinsView*& inline_assertion_check<true, CCoinsView*&>(CCoinsView*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
489k
{
91
489k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
489k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
489k
    }
96
489k
    return std::forward<T>(val);
97
489k
}
std::shared_ptr<ThreadPool>& inline_assertion_check<true, std::shared_ptr<ThreadPool>&>(std::shared_ptr<ThreadPool>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1.31k
{
91
1.31k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.31k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.31k
    }
96
1.31k
    return std::forward<T>(val);
97
1.31k
}
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
12.5M
{
91
12.5M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
12.5M
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
12.5M
    }
96
12.5M
    return std::forward<T>(val);
97
12.5M
}
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
211k
{
91
211k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
211k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
211k
    }
96
211k
    return std::forward<T>(val);
97
211k
}
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
154k
{
91
154k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
154k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
154k
    }
96
154k
    return std::forward<T>(val);
97
154k
}
std::unique_ptr<CTxMemPool, std::default_delete<CTxMemPool>>& inline_assertion_check<true, std::unique_ptr<CTxMemPool, std::default_delete<CTxMemPool>>&>(std::unique_ptr<CTxMemPool, std::default_delete<CTxMemPool>>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1.08k
{
91
1.08k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.08k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.08k
    }
96
1.08k
    return std::forward<T>(val);
97
1.08k
}
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
131
{
91
131
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
131
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
131
    }
96
131
    return std::forward<T>(val);
97
131
}
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
1.35k
{
91
1.35k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.35k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.35k
    }
96
1.35k
    return std::forward<T>(val);
97
1.35k
}
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
1.35k
{
91
1.35k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.35k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.35k
    }
96
1.35k
    return std::forward<T>(val);
97
1.35k
}
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
86.3k
{
91
86.3k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
86.3k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
86.3k
    }
96
86.3k
    return std::forward<T>(val);
97
86.3k
}
node::ReadRawError*&& inline_assertion_check<true, node::ReadRawError*>(node::ReadRawError*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
14
{
91
14
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
14
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
14
    }
96
14
    return std::forward<T>(val);
97
14
}
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
17.5M
{
91
17.5M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
17.5M
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
17.5M
    }
96
17.5M
    return std::forward<T>(val);
97
17.5M
}
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>>)
std::optional<int>&& inline_assertion_check<true, std::optional<int>>(std::optional<int>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>&& inline_assertion_check<true, std::optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>(std::optional<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>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
std::optional<Coin>&& inline_assertion_check<true, std::optional<Coin>>(std::optional<Coin>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1
{
91
1
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1
    }
96
1
    return std::forward<T>(val);
97
1
}
std::optional<unsigned int>&& inline_assertion_check<true, std::optional<unsigned int>>(std::optional<unsigned int>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
3
{
91
3
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3
    }
96
3
    return std::forward<T>(val);
97
3
}
CBlockIndex*&& inline_assertion_check<true, CBlockIndex*>(CBlockIndex*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
144k
{
91
144k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
144k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
144k
    }
96
144k
    return std::forward<T>(val);
97
144k
}
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>>)
Line
Count
Source
90
3
{
91
3
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3
    }
96
3
    return std::forward<T>(val);
97
3
}
util::Expected<std::future<void>, ThreadPool::SubmitError>&& inline_assertion_check<true, util::Expected<std::future<void>, ThreadPool::SubmitError>>(util::Expected<std::future<void>, ThreadPool::SubmitError>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
359
{
91
359
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
359
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
359
    }
96
359
    return std::forward<T>(val);
97
359
}
std::optional<BCLog::LogFlags>&& inline_assertion_check<true, std::optional<BCLog::LogFlags>>(std::optional<BCLog::LogFlags>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
30
{
91
30
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
30
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
30
    }
96
30
    return std::forward<T>(val);
97
30
}
std::shared_ptr<BCLog::LogRateLimiter>& inline_assertion_check<true, std::shared_ptr<BCLog::LogRateLimiter>&>(std::shared_ptr<BCLog::LogRateLimiter>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1
{
91
1
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1
    }
96
1
    return std::forward<T>(val);
97
1
}
CBlockIndex*& inline_assertion_check<true, CBlockIndex*&>(CBlockIndex*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
306k
{
91
306k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
306k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
306k
    }
96
306k
    return std::forward<T>(val);
97
306k
}
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
112
{
91
112
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
112
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
112
    }
96
112
    return std::forward<T>(val);
97
112
}
ArgsManager*& inline_assertion_check<true, ArgsManager*&>(ArgsManager*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
10.4k
{
91
10.4k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
10.4k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
10.4k
    }
96
10.4k
    return std::forward<T>(val);
97
10.4k
}
std::optional<std::vector<std::byte, std::allocator<std::byte>>>&& inline_assertion_check<true, std::optional<std::vector<std::byte, std::allocator<std::byte>>>>(std::optional<std::vector<std::byte, std::allocator<std::byte>>>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
3.73k
{
91
3.73k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3.73k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3.73k
    }
96
3.73k
    return std::forward<T>(val);
97
3.73k
}
unsigned long const& inline_assertion_check<true, unsigned long const&>(unsigned long const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
6
{
91
6
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
6
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
6
    }
96
6
    return std::forward<T>(val);
97
6
}
ThreadPool::SubmitError*&& inline_assertion_check<true, ThreadPool::SubmitError*>(ThreadPool::SubmitError*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
5
{
91
5
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
5
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
5
    }
96
5
    return std::forward<T>(val);
97
5
}
ThreadPool::SubmitError const*&& inline_assertion_check<true, ThreadPool::SubmitError const*>(ThreadPool::SubmitError const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
util::Expected<std::future<bool>, ThreadPool::SubmitError>&& inline_assertion_check<true, util::Expected<std::future<bool>, ThreadPool::SubmitError>>(util::Expected<std::future<bool>, ThreadPool::SubmitError>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
util::Expected<std::future<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, ThreadPool::SubmitError>&& inline_assertion_check<true, util::Expected<std::future<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, ThreadPool::SubmitError>>(util::Expected<std::future<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, ThreadPool::SubmitError>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1
{
91
1
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1
    }
96
1
    return std::forward<T>(val);
97
1
}
util::Expected<std::vector<std::future<int>, std::allocator<std::future<int>>>, ThreadPool::SubmitError>&& inline_assertion_check<true, util::Expected<std::vector<std::future<int>, std::allocator<std::future<int>>>, ThreadPool::SubmitError>>(util::Expected<std::vector<std::future<int>, std::allocator<std::future<int>>>, ThreadPool::SubmitError>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
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>>)
Line
Count
Source
90
20
{
91
20
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
20
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
20
    }
96
20
    return std::forward<T>(val);
97
20
}
std::unique_ptr<int, std::default_delete<int>>*&& inline_assertion_check<true, std::unique_ptr<int, std::default_delete<int>>*>(std::unique_ptr<int, std::default_delete<int>>*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
3
{
91
3
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3
    }
96
3
    return std::forward<T>(val);
97
3
}
std::unique_ptr<int, std::default_delete<int>>&& inline_assertion_check<true, std::unique_ptr<int, std::default_delete<int>>>(std::unique_ptr<int, std::default_delete<int>>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
std::unique_ptr<int, std::default_delete<int>> const& inline_assertion_check<true, std::unique_ptr<int, std::default_delete<int>> const&>(std::unique_ptr<int, std::default_delete<int>> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
bool const& inline_assertion_check<true, bool const&>(bool const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
util_tests.cpp:util_tests::(anonymous namespace)::NoCopyOrMove& inline_assertion_check<true, util_tests::(anonymous namespace)::NoCopyOrMove&>(util_tests::(anonymous namespace)::NoCopyOrMove&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
6
{
91
6
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
6
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
6
    }
96
6
    return std::forward<T>(val);
97
6
}
int&& inline_assertion_check<true, int>(int&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
Chainstate*&& inline_assertion_check<true, Chainstate*>(Chainstate*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
7
{
91
7
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
7
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
7
    }
96
7
    return std::forward<T>(val);
97
7
}
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
4
{
91
4
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
4
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
4
    }
96
4
    return std::forward<T>(val);
97
4
}
std::shared_ptr<CTransaction const>& inline_assertion_check<true, std::shared_ptr<CTransaction const>&>(std::shared_ptr<CTransaction const>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
151k
{
91
151k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
151k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
151k
    }
96
151k
    return std::forward<T>(val);
97
151k
}
std::unique_ptr<wallet::WalletDatabase, std::default_delete<wallet::WalletDatabase>> const& inline_assertion_check<true, std::unique_ptr<wallet::WalletDatabase, std::default_delete<wallet::WalletDatabase>> const&>(std::unique_ptr<wallet::WalletDatabase, std::default_delete<wallet::WalletDatabase>> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
std::unique_ptr<wallet::SQLiteDatabase, std::default_delete<wallet::SQLiteDatabase>> const& inline_assertion_check<true, std::unique_ptr<wallet::SQLiteDatabase, std::default_delete<wallet::SQLiteDatabase>> const&>(std::unique_ptr<wallet::SQLiteDatabase, std::default_delete<wallet::SQLiteDatabase>> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
2
{
91
2
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2
    }
96
2
    return std::forward<T>(val);
97
2
}
util::Result<std::variant<CNoDestination, PubKeyDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessV1Taproot, PayToAnchor, WitnessUnknown>>&& inline_assertion_check<true, util::Result<std::variant<CNoDestination, PubKeyDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessV1Taproot, PayToAnchor, WitnessUnknown>>>(util::Result<std::variant<CNoDestination, PubKeyDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessV1Taproot, PayToAnchor, WitnessUnknown>>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
6.11k
{
91
6.11k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
6.11k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
6.11k
    }
96
6.11k
    return std::forward<T>(val);
97
6.11k
}
util::Result<wallet::CoinsResult>&& inline_assertion_check<true, util::Result<wallet::CoinsResult>>(util::Result<wallet::CoinsResult>&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1
{
91
1
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1
    }
96
1
    return std::forward<T>(val);
97
1
}
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>>)
Line
Count
Source
90
180
{
91
180
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
180
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
180
    }
96
180
    return std::forward<T>(val);
97
180
}
util::Result<std::reference_wrapper<wallet::DescriptorScriptPubKeyMan>>&& inline_assertion_check<true, util::Result<std::reference_wrapper<wallet::DescriptorScriptPubKeyMan>>>(util::Result<std::reference_wrapper<wallet::DescriptorScriptPubKeyMan>>&&, 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) {
92
27
        if (!val) {
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>> 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>>)
Line
Count
Source
90
85.2k
{
91
85.2k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
85.2k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
85.2k
    }
96
85.2k
    return std::forward<T>(val);
97
85.2k
}
std::unique_ptr<interfaces::BlockTemplate, std::default_delete<interfaces::BlockTemplate>>& inline_assertion_check<true, 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>>)
Line
Count
Source
90
7.65k
{
91
7.65k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
7.65k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
7.65k
    }
96
7.65k
    return std::forward<T>(val);
97
7.65k
}
Unexecuted instantiation: std::atomic<bool>& inline_assertion_check<true, std::atomic<bool>&>(std::atomic<bool>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
CTxMemPool*&& inline_assertion_check<true, CTxMemPool*>(CTxMemPool*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1.26k
{
91
1.26k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.26k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.26k
    }
96
1.26k
    return std::forward<T>(val);
97
1.26k
}
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
1.26k
{
91
1.26k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.26k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.26k
    }
96
1.26k
    return std::forward<T>(val);
97
1.26k
}
util::Result<void> const& inline_assertion_check<true, util::Result<void> const&>(util::Result<void> const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
186
{
91
186
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
186
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
186
    }
96
186
    return std::forward<T>(val);
97
186
}
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
146k
{
91
146k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
146k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
146k
    }
96
146k
    return std::forward<T>(val);
97
146k
}
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
9.43k
{
91
9.43k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
9.43k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
9.43k
    }
96
9.43k
    return std::forward<T>(val);
97
9.43k
}
std::optional<unsigned long>& inline_assertion_check<false, std::optional<unsigned long>&>(std::optional<unsigned long>&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
553
{
91
553
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
553
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
553
    }
96
553
    return std::forward<T>(val);
97
553
}
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
131k
{
91
131k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
131k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
131k
    }
96
131k
    return std::forward<T>(val);
97
131k
}
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
7.89k
{
91
7.89k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
7.89k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
7.89k
    }
96
7.89k
    return std::forward<T>(val);
97
7.89k
}
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
8.25k
{
91
8.25k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
8.25k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
8.25k
    }
96
8.25k
    return std::forward<T>(val);
97
8.25k
}
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
197k
{
91
197k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
197k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
197k
    }
96
197k
    return std::forward<T>(val);
97
197k
}
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>>)
Line
Count
Source
90
23
{
91
23
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
23
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
23
    }
96
23
    return std::forward<T>(val);
97
23
}
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
3.29k
{
91
3.29k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3.29k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3.29k
    }
96
3.29k
    return std::forward<T>(val);
97
3.29k
}
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
2.01k
{
91
2.01k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2.01k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.01k
    }
96
2.01k
    return std::forward<T>(val);
97
2.01k
}
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
1.07k
{
91
1.07k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.07k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.07k
    }
96
1.07k
    return std::forward<T>(val);
97
1.07k
}
bool& inline_assertion_check<false, bool&>(bool&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
415k
{
91
415k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
415k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
415k
    }
96
415k
    return std::forward<T>(val);
97
415k
}
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
53.9k
{
91
53.9k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
53.9k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
53.9k
    }
96
53.9k
    return std::forward<T>(val);
97
53.9k
}
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>>)
Line
Count
Source
90
4
{
91
4
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
4
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
4
    }
96
4
    return std::forward<T>(val);
97
4
}
CBlockIndex*&& inline_assertion_check<false, CBlockIndex*>(CBlockIndex*&&, 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) {
92
21.4k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
21.4k
    }
96
21.4k
    return std::forward<T>(val);
97
21.4k
}
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
21.5M
{
91
21.5M
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
21.5M
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
21.5M
    }
96
21.5M
    return std::forward<T>(val);
97
21.5M
}
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>>)
Line
Count
Source
90
6
{
91
6
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
6
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
6
    }
96
6
    return std::forward<T>(val);
97
6
}
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
103k
{
91
103k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
103k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
103k
    }
96
103k
    return std::forward<T>(val);
97
103k
}
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>>)
Line
Count
Source
90
50.9k
{
91
50.9k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
50.9k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
50.9k
    }
96
50.9k
    return std::forward<T>(val);
97
50.9k
}
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>>)
Line
Count
Source
90
8.54k
{
91
8.54k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
8.54k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
8.54k
    }
96
8.54k
    return std::forward<T>(val);
97
8.54k
}
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>>)
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>>)
Line
Count
Source
90
178k
{
91
178k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
178k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
178k
    }
96
178k
    return std::forward<T>(val);
97
178k
}
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>>)
Line
Count
Source
90
128
{
91
128
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
128
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
128
    }
96
128
    return std::forward<T>(val);
97
128
}
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>>)
Line
Count
Source
90
42.3k
{
91
42.3k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
42.3k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
42.3k
    }
96
42.3k
    return std::forward<T>(val);
97
42.3k
}
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
500k
{
91
500k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
500k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
500k
    }
96
500k
    return std::forward<T>(val);
97
500k
}
FeeRateEstimationError*&& inline_assertion_check<true, FeeRateEstimationError*>(FeeRateEstimationError*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
3.52k
{
91
3.52k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3.52k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3.52k
    }
96
3.52k
    return std::forward<T>(val);
97
3.52k
}
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>>)
Line
Count
Source
90
12
{
91
12
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
12
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
12
    }
96
12
    return std::forward<T>(val);
97
12
}
common::PSBTError const*&& inline_assertion_check<true, common::PSBTError const*>(common::PSBTError const*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
22.4k
{
91
22.4k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
22.4k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
22.4k
    }
96
22.4k
    return std::forward<T>(val);
97
22.4k
}
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
2.74k
{
91
2.74k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
2.74k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
2.74k
    }
96
2.74k
    return std::forward<T>(val);
97
2.74k
}
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
202k
{
91
202k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
202k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
202k
    }
96
202k
    return std::forward<T>(val);
97
202k
}
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
103k
{
91
103k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
103k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
103k
    }
96
103k
    return std::forward<T>(val);
97
103k
}
uint256 const*& inline_assertion_check<true, uint256 const*&>(uint256 const*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
43.0k
{
91
43.0k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
43.0k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
43.0k
    }
96
43.0k
    return std::forward<T>(val);
97
43.0k
}
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
401k
{
91
401k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
401k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
401k
    }
96
401k
    return std::forward<T>(val);
97
401k
}
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
308k
{
91
308k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
308k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
308k
    }
96
308k
    return std::forward<T>(val);
97
308k
}
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>>)
Line
Count
Source
90
3
{
91
3
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3
    }
96
3
    return std::forward<T>(val);
97
3
}
std::shared_ptr<CBlock const>& inline_assertion_check<false, 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
86.7k
{
91
86.7k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
86.7k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
86.7k
    }
96
86.7k
    return std::forward<T>(val);
97
86.7k
}
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
1.35k
{
91
1.35k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.35k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.35k
    }
96
1.35k
    return std::forward<T>(val);
97
1.35k
}
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>>)
Line
Count
Source
90
3.63k
{
91
3.63k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3.63k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3.63k
    }
96
3.63k
    return std::forward<T>(val);
97
3.63k
}
CScheduler*& inline_assertion_check<true, CScheduler*&>(CScheduler*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
25
{
91
25
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
25
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
25
    }
96
25
    return std::forward<T>(val);
97
25
}
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>>)
Line
Count
Source
90
5
{
91
5
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
5
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
5
    }
96
5
    return std::forward<T>(val);
97
5
}
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>>)
Line
Count
Source
90
143k
{
91
143k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
143k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
143k
    }
96
143k
    return std::forward<T>(val);
97
143k
}
unsigned long&& inline_assertion_check<true, unsigned long>(unsigned long&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
657
{
91
657
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
657
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
657
    }
96
657
    return std::forward<T>(val);
97
657
}
ArgsManager* const& inline_assertion_check<true, ArgsManager* const&>(ArgsManager* const&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
1.03k
{
91
1.03k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
1.03k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
1.03k
    }
96
1.03k
    return std::forward<T>(val);
97
1.03k
}
wallet::LegacyDataSPKM*& inline_assertion_check<false, wallet::LegacyDataSPKM*&>(wallet::LegacyDataSPKM*&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
88
{
91
88
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
88
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
88
    }
96
88
    return std::forward<T>(val);
97
88
}
wallet::DescriptorScriptPubKeyMan*&& inline_assertion_check<true, wallet::DescriptorScriptPubKeyMan*>(wallet::DescriptorScriptPubKeyMan*&&, std::source_location const&, std::basic_string_view<char, std::char_traits<char>>)
Line
Count
Source
90
433
{
91
433
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
433
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
433
    }
96
433
    return std::forward<T>(val);
97
433
}
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>>)
Line
Count
Source
90
7
{
91
7
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
7
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
7
    }
96
7
    return std::forward<T>(val);
97
7
}
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
3.53k
{
91
3.53k
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
3.53k
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
3.53k
    }
96
3.53k
    return std::forward<T>(val);
97
3.53k
}
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>>)
Line
Count
Source
90
915
{
91
915
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
915
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
915
    }
96
915
    return std::forward<T>(val);
97
915
}
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>>)
Line
Count
Source
90
587
{
91
587
    if (IS_ASSERT || std::is_constant_evaluated() || G_ABORT_ON_FAILED_ASSUME) {
92
587
        if (!val) {
93
0
            assertion_fail(loc, assertion);
94
0
        }
95
587
    }
96
587
    return std::forward<T>(val);
97
587
}
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
228M
    inline_check_non_fatal(condition, std::source_location::current(), #condition)
blockchain.cpp:GetUTXOStats(CCoinsViewDB const&, node::BlockManager&, kernel::CoinStatsHashType, std::function<void ()> const&, CBlockIndex const*, bool)::$_0::operator()() const
Line
Count
Source
113
18
    inline_check_non_fatal(condition, std::source_location::current(), #condition)
blockchain.cpp:gettxoutsetinfo()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda0'()::operator()() const
Line
Count
Source
113
32
    inline_check_non_fatal(condition, std::source_location::current(), #condition)
blockchain.cpp:scanblocks()::$_0::operator()(RPCMethod const&, JSONRPCRequest const&) const::'lambda0'()::operator()() const
Line
Count
Source
113
3
    inline_check_non_fatal(condition, std::source_location::current(), #condition)
114
115
/** Identity function. Abort if the value compares equal to zero */
116
39.2M
#define Assert(val) inline_assertion_check<true>(val, std::source_location::current(), #val)
validation_chainstate_tests.cpp:validation_chainstate_tests::chainstate_update_tip::test_method()::$_2::operator()() const
Line
Count
Source
116
1
#define Assert(val) inline_assertion_check<true>(val, std::source_location::current(), #val)
validation_chainstate_tests.cpp:bool CreateAndActivateUTXOSnapshot<NoMalleation::'lambda'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, NoMalleation::'lambda'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda0'()::operator()() const
Line
Count
Source
116
1
#define Assert(val) inline_assertion_check<true>(val, std::source_location::current(), #val)
Unexecuted instantiation: validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<NoMalleation::'lambda'(AutoFile&, node::SnapshotMetadata&) const>(TestingSetup*, NoMalleation::'lambda'(AutoFile&, node::SnapshotMetadata&) const, bool, bool)::'lambda0'()::operator()() const
Unexecuted instantiation: validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda0'()::operator()() const
Unexecuted instantiation: validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda0'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda0'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda0'()::operator()() const
Unexecuted instantiation: validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda1'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda1'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda0'()::operator()() const
Unexecuted instantiation: validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda2'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda2'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda0'()::operator()() const
Unexecuted instantiation: validation_chainstatemanager_tests.cpp:bool CreateAndActivateUTXOSnapshot<validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda3'(AutoFile&, node::SnapshotMetadata&)>(TestingSetup*, validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda3'(AutoFile&, node::SnapshotMetadata&), bool, bool)::'lambda0'()::operator()() const
validation_chainstatemanager_tests::SnapshotTestSetup::SetupSnapshot()::'lambda0'()::operator()() const
Line
Count
Source
116
4
#define Assert(val) inline_assertion_check<true>(val, std::source_location::current(), #val)
validation_chainstatemanager_tests.cpp:validation_chainstatemanager_tests::chainstatemanager_snapshot_completion::test_method()::$_0::operator()() const
Line
Count
Source
116
1
#define Assert(val) inline_assertion_check<true>(val, std::source_location::current(), #val)
Unexecuted instantiation: txmempool.cpp:CheckMempoolEphemeralInvariants(CTxMemPool const&)::$_0::operator()(CTxIn const&) const
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.65G
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
httpserver.cpp:_ZZN10HTTPServer16AcceptConnectionERK4SockR8CServiceENK3$_0clISt10shared_ptrIS0_EEEDaRKT_
Line
Count
Source
128
14.3k
#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
4.67k
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
mini_miner.cpp:_ZZNK4node9MiniMiner11SanityCheckEvENK3$_0clISt17_Rb_tree_iteratorISt4pairIK22transaction_identifierILb0EENS_21MiniMinerMempoolEntryEEEEEDaRKT_
Line
Count
Source
128
3.46M
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
mini_miner.cpp:_ZZNK4node9MiniMiner11SanityCheckEvENK3$_1clI22transaction_identifierILb0EEEEDaRKT_
Line
Count
Source
128
406
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
ephemeral_policy.cpp:_ZZ20CheckEphemeralSpendsRKSt6vectorISt10shared_ptrIK12CTransactionESaIS3_EE8CFeeRateRK10CTxMemPoolR17TxValidationStateR22transaction_identifierILb1EEENK3$_0clIS3_EEDaRKT_
Line
Count
Source
128
44.1k
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
mempool_estimator.cpp:_ZZN23MemPoolFeeRateEstimator29CalculateMaxWeightPercentilesESt4spanIK10FeePerUnitI8VSizeTagELm18446744073709551615EEENK3$_0clIS3_S3_EEDaRKT_RKT0_
Line
Count
Source
128
41.0k
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
validation.cpp:_ZZN17ChainstateManager25ReceivedBlockTransactionsERK6CBlockP11CBlockIndexRK11FlatFilePosENK3$_0clISt10unique_ptrI10ChainstateSt14default_deleteISB_EEEEDaRKT_
Line
Count
Source
128
2
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
scriptpubkeyman.cpp:wallet::DescriptorScriptPubKeyMan::GetKey(CKeyID const&) const::$_0::operator()(std::vector<unsigned char, secure_allocator<unsigned char>> const&) const
Line
Count
Source
128
11
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
wallet.cpp:wallet::CWallet::GetScriptPubKeyMans(CScript const&) const::$_0::operator()(wallet::ScriptPubKeyMan*) const
Line
Count
Source
128
88.2k
#define Assume(val) inline_assertion_check<false>(val, std::source_location::current(), #val)
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
86.7M
#   define ASAN_POISON_MEMORY_REGION(addr, size) ((void)(addr), (void)(size))
144
147M
#   define ASAN_UNPOISON_MEMORY_REGION(addr, size) ((void)(addr), (void)(size))
145
#endif
146
147
#endif // BITCOIN_UTIL_CHECK_H