Coverage Report

Created: 2025-07-11 06:15

/src/Botan-3.4.0/build/include/public/botan/assert.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
* Runtime assertion checking
3
* (C) 2010,2018 Jack Lloyd
4
*     2017 Simon Warta (Kullo GmbH)
5
*
6
* Botan is released under the Simplified BSD License (see license.txt)
7
*/
8
9
#ifndef BOTAN_ASSERTION_CHECKING_H_
10
#define BOTAN_ASSERTION_CHECKING_H_
11
12
#include <botan/compiler.h>
13
14
namespace Botan {
15
16
/**
17
* Called when an assertion fails
18
* Throws an Exception object
19
*/
20
[[noreturn]] void BOTAN_PUBLIC_API(2, 0)
21
   assertion_failure(const char* expr_str, const char* assertion_made, const char* func, const char* file, int line);
22
23
/**
24
* Called when an invalid argument is used
25
* Throws Invalid_Argument
26
*/
27
[[noreturn]] void BOTAN_UNSTABLE_API throw_invalid_argument(const char* message, const char* func, const char* file);
28
29
#define BOTAN_ARG_CHECK(expr, msg)                               \
30
279M
   do {                                                          \
31
279M
      if(!(expr))                                                \
32
279M
         Botan::throw_invalid_argument(msg, __func__, __FILE__); \
33
279M
   } while(0)
34
35
/**
36
* Called when an invalid state is encountered
37
* Throws Invalid_State
38
*/
39
[[noreturn]] void BOTAN_UNSTABLE_API throw_invalid_state(const char* message, const char* func, const char* file);
40
41
#define BOTAN_STATE_CHECK(expr)                                 \
42
83.7M
   do {                                                         \
43
83.7M
      if(!(expr))                                               \
44
83.7M
         Botan::throw_invalid_state(#expr, __func__, __FILE__); \
45
83.7M
   } while(0)
46
47
/**
48
* Make an assertion
49
*/
50
#define BOTAN_ASSERT(expr, assertion_made)                                              \
51
1.52G
   do {                                                                                 \
52
1.52G
      if(!(expr))                                                                       \
53
1.52G
         Botan::assertion_failure(#expr, assertion_made, __func__, __FILE__, __LINE__); \
54
1.52G
   } while(0)
55
56
/**
57
* Make an assertion
58
*/
59
#define BOTAN_ASSERT_NOMSG(expr)                                            \
60
222M
   do {                                                                     \
61
222M
      if(!(expr))                                                           \
62
222M
         Botan::assertion_failure(#expr, "", __func__, __FILE__, __LINE__); \
63
222M
   } while(0)
64
65
/**
66
* Assert that value1 == value2
67
*/
68
#define BOTAN_ASSERT_EQUAL(expr1, expr2, assertion_made)                                               \
69
70.8M
   do {                                                                                                \
70
70.8M
      if((expr1) != (expr2))                                                                           \
71
70.8M
         Botan::assertion_failure(#expr1 " == " #expr2, assertion_made, __func__, __FILE__, __LINE__); \
72
70.8M
   } while(0)
73
74
/**
75
* Assert that expr1 (if true) implies expr2 is also true
76
*/
77
#define BOTAN_ASSERT_IMPLICATION(expr1, expr2, msg)                                              \
78
208M
   do {                                                                                          \
79
417M
      if((expr1) && !(expr2))                                                                    \
80
208M
         Botan::assertion_failure(#expr1 " implies " #expr2, msg, __func__, __FILE__, __LINE__); \
81
208M
   } while(0)
82
83
/**
84
* Assert that a pointer is not null
85
*/
86
#define BOTAN_ASSERT_NONNULL(ptr)                                                         \
87
179k
   do {                                                                                   \
88
179k
      if((ptr) == nullptr)                                                                \
89
179k
         Botan::assertion_failure(#ptr " is not null", "", __func__, __FILE__, __LINE__); \
90
179k
   } while(0)
91
92
#if defined(BOTAN_ENABLE_DEBUG_ASSERTS)
93
94
   #define BOTAN_DEBUG_ASSERT(expr) BOTAN_ASSERT_NOMSG(expr)
95
96
#else
97
98
   #define BOTAN_DEBUG_ASSERT(expr) \
99
1.83G
      do {                          \
100
1.83G
      } while(0)
101
102
#endif
103
104
/**
105
* Mark variable as unused.
106
*
107
* Takes any number of arguments and marks all as unused, for instance
108
* BOTAN_UNUSED(a); or BOTAN_UNUSED(x, y, z);
109
*/
110
template <typename T>
111
699M
constexpr void ignore_param(T&&) {}
void Botan::ignore_param<unsigned char&>(unsigned char&)
Line
Count
Source
111
56.8k
constexpr void ignore_param(T&&) {}
Unexecuted instantiation: void Botan::ignore_param<unsigned int const*&>(unsigned int const*&)
void Botan::ignore_param<unsigned long&>(unsigned long&)
Line
Count
Source
111
92.1M
constexpr void ignore_param(T&&) {}
Unexecuted instantiation: void Botan::ignore_param<unsigned char const*&>(unsigned char const*&)
Unexecuted instantiation: void Botan::ignore_param<Botan::SCAN_Name const&>(Botan::SCAN_Name const&)
Unexecuted instantiation: void Botan::ignore_param<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Unexecuted instantiation: void Botan::ignore_param<unsigned short const*&>(unsigned short const*&)
Unexecuted instantiation: void Botan::ignore_param<botan_x509_cert_struct*&>(botan_x509_cert_struct*&)
Unexecuted instantiation: void Botan::ignore_param<char const*&>(char const*&)
Unexecuted instantiation: void Botan::ignore_param<unsigned char*&>(unsigned char*&)
Unexecuted instantiation: void Botan::ignore_param<unsigned long*&>(unsigned long*&)
Unexecuted instantiation: void Botan::ignore_param<void*&>(void*&)
Unexecuted instantiation: void Botan::ignore_param<int (*&)(void*, char const*, unsigned long)>(int (*&)(void*, char const*, unsigned long))
Unexecuted instantiation: void Botan::ignore_param<unsigned int&>(unsigned int&)
Unexecuted instantiation: void Botan::ignore_param<char*&>(char*&)
Unexecuted instantiation: void Botan::ignore_param<int (*&)(void*, unsigned char const*, unsigned long)>(int (*&)(void*, unsigned char const*, unsigned long))
Unexecuted instantiation: void Botan::ignore_param<int*&>(int*&)
Unexecuted instantiation: void Botan::ignore_param<botan_x509_cert_struct* const*&>(botan_x509_cert_struct* const*&)
Unexecuted instantiation: void Botan::ignore_param<botan_x509_crl_struct*&>(botan_x509_crl_struct*&)
Unexecuted instantiation: void Botan::ignore_param<botan_x509_crl_struct* const*&>(botan_x509_crl_struct* const*&)
Unexecuted instantiation: void Botan::ignore_param<botan_fpe_struct**&>(botan_fpe_struct**&)
Unexecuted instantiation: void Botan::ignore_param<botan_mp_struct*&>(botan_mp_struct*&)
Unexecuted instantiation: void Botan::ignore_param<botan_fpe_struct*&>(botan_fpe_struct*&)
Unexecuted instantiation: void Botan::ignore_param<botan_hotp_struct**&>(botan_hotp_struct**&)
Unexecuted instantiation: void Botan::ignore_param<botan_hotp_struct*&>(botan_hotp_struct*&)
Unexecuted instantiation: void Botan::ignore_param<unsigned int*&>(unsigned int*&)
Unexecuted instantiation: void Botan::ignore_param<botan_rng_struct*&>(botan_rng_struct*&)
Unexecuted instantiation: void Botan::ignore_param<Botan::RandomNumberGenerator&>(Botan::RandomNumberGenerator&)
Unexecuted instantiation: void Botan::ignore_param<botan_privkey_struct**&>(botan_privkey_struct**&)
Unexecuted instantiation: void Botan::ignore_param<botan_pubkey_struct**&>(botan_pubkey_struct**&)
Unexecuted instantiation: void Botan::ignore_param<botan_privkey_struct*&>(botan_privkey_struct*&)
Unexecuted instantiation: void Botan::ignore_param<botan_pubkey_struct*&>(botan_pubkey_struct*&)
Unexecuted instantiation: void Botan::ignore_param<botan_srp6_server_session_struct**&>(botan_srp6_server_session_struct**&)
Unexecuted instantiation: void Botan::ignore_param<botan_srp6_server_session_struct*&>(botan_srp6_server_session_struct*&)
Unexecuted instantiation: void Botan::ignore_param<botan_totp_struct**&>(botan_totp_struct**&)
Unexecuted instantiation: void Botan::ignore_param<botan_totp_struct*&>(botan_totp_struct*&)
Unexecuted instantiation: void Botan::ignore_param<unsigned char**&>(unsigned char**&)
void Botan::ignore_param<unsigned long const*&>(unsigned long const*&)
Line
Count
Source
111
203k
constexpr void ignore_param(T&&) {}
Unexecuted instantiation: void Botan::ignore_param<unsigned char* const* const&>(unsigned char* const* const&)
Unexecuted instantiation: void Botan::ignore_param<std::__1::span<unsigned char const, 18446744073709551615ul>&>(std::__1::span<unsigned char const, 18446744073709551615ul>&)
void Botan::ignore_param<unsigned long const&>(unsigned long const&)
Line
Count
Source
111
310M
constexpr void ignore_param(T&&) {}
void Botan::ignore_param<std::__1::vector<unsigned long, Botan::secure_allocator<unsigned long> >&>(std::__1::vector<unsigned long, Botan::secure_allocator<unsigned long> >&)
Line
Count
Source
111
148M
constexpr void ignore_param(T&&) {}
void Botan::ignore_param<long&>(long&)
Line
Count
Source
111
148M
constexpr void ignore_param(T&&) {}
Unexecuted instantiation: void Botan::ignore_param<bool&>(bool&)
Unexecuted instantiation: void Botan::ignore_param<Botan::EC_Group const&>(Botan::EC_Group const&)
Unexecuted instantiation: void Botan::ignore_param<Botan::Private_Key const&>(Botan::Private_Key const&)
Unexecuted instantiation: void Botan::ignore_param<std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >&>(std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >&)
Unexecuted instantiation: void Botan::ignore_param<std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()> const&>(std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()> const&)
112
113
template <typename... T>
114
544M
constexpr void ignore_params(T&&... args) {
115
544M
   (ignore_param(args), ...);
116
544M
}
void Botan::ignore_params<unsigned char&>(unsigned char&)
Line
Count
Source
114
56.8k
constexpr void ignore_params(T&&... args) {
115
56.8k
   (ignore_param(args), ...);
116
56.8k
}
Unexecuted instantiation: void Botan::ignore_params<unsigned int const*&, unsigned long&>(unsigned int const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<unsigned char const*&, unsigned long&>(unsigned char const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<Botan::SCAN_Name const&>(Botan::SCAN_Name const&)
Unexecuted instantiation: void Botan::ignore_params<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Unexecuted instantiation: void Botan::ignore_params<unsigned short const*&, unsigned long&>(unsigned short const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&>(botan_x509_cert_struct*&)
void Botan::ignore_params<unsigned long&>(unsigned long&)
Line
Count
Source
114
91.9M
constexpr void ignore_params(T&&... args) {
115
91.9M
   (ignore_param(args), ...);
116
91.9M
}
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, char const*&, unsigned long&, unsigned char*&, unsigned long*&>(botan_x509_cert_struct*&, char const*&, unsigned long&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, void*&, int (*&)(void*, char const*, unsigned long)>(botan_x509_cert_struct*&, void*&, int (*&)(void*, char const*, unsigned long))
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, unsigned int&>(botan_x509_cert_struct*&, unsigned int&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, char*&, unsigned long*&>(botan_x509_cert_struct*&, char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, unsigned long*&>(botan_x509_cert_struct*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, unsigned char*&, unsigned long*&>(botan_x509_cert_struct*&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, char const*&, unsigned char*&, unsigned long*&>(botan_x509_cert_struct*&, char const*&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_cert_struct*&, void*&, int (*&)(void*, unsigned char const*, unsigned long)>(botan_x509_cert_struct*&, void*&, int (*&)(void*, unsigned char const*, unsigned long))
Unexecuted instantiation: void Botan::ignore_params<int*&, botan_x509_cert_struct*&, botan_x509_cert_struct* const*&, unsigned long&, botan_x509_cert_struct* const*&>(int*&, botan_x509_cert_struct*&, botan_x509_cert_struct* const*&, unsigned long&, botan_x509_cert_struct* const*&)
Unexecuted instantiation: void Botan::ignore_params<unsigned long&, char const*&, char const*&, unsigned long&>(unsigned long&, char const*&, char const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_x509_crl_struct*&>(botan_x509_crl_struct*&)
Unexecuted instantiation: void Botan::ignore_params<unsigned long&, char const*&, char const*&, unsigned long&, botan_x509_crl_struct* const*&, unsigned long&>(unsigned long&, char const*&, char const*&, unsigned long&, botan_x509_crl_struct* const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_fpe_struct**&, botan_mp_struct*&, unsigned char const*&, unsigned long&, unsigned long&, unsigned int&>(botan_fpe_struct**&, botan_mp_struct*&, unsigned char const*&, unsigned long&, unsigned long&, unsigned int&)
Unexecuted instantiation: void Botan::ignore_params<botan_fpe_struct*&>(botan_fpe_struct*&)
Unexecuted instantiation: void Botan::ignore_params<botan_fpe_struct*&, botan_mp_struct*&, unsigned char const*&, unsigned long&>(botan_fpe_struct*&, botan_mp_struct*&, unsigned char const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_hotp_struct**&, unsigned char const*&, unsigned long&, char const*&, unsigned long&>(botan_hotp_struct**&, unsigned char const*&, unsigned long&, char const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_hotp_struct*&>(botan_hotp_struct*&)
Unexecuted instantiation: void Botan::ignore_params<botan_hotp_struct*&, unsigned int*&, unsigned long&>(botan_hotp_struct*&, unsigned int*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_hotp_struct*&, unsigned long*&, unsigned int&, unsigned long&, unsigned long&>(botan_hotp_struct*&, unsigned long*&, unsigned int&, unsigned long&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<unsigned char*&, unsigned long*&, char const*&, botan_rng_struct*&, unsigned long&, unsigned int&>(unsigned char*&, unsigned long*&, char const*&, botan_rng_struct*&, unsigned long&, unsigned int&)
Unexecuted instantiation: void Botan::ignore_params<char const*&, char const*&>(char const*&, char const*&)
Unexecuted instantiation: void Botan::ignore_params<Botan::RandomNumberGenerator&>(Botan::RandomNumberGenerator&)
Unexecuted instantiation: void Botan::ignore_params<botan_rng_struct*&>(botan_rng_struct*&)
Unexecuted instantiation: void Botan::ignore_params<botan_privkey_struct**&, botan_mp_struct*&, botan_mp_struct*&, botan_mp_struct*&>(botan_privkey_struct**&, botan_mp_struct*&, botan_mp_struct*&, botan_mp_struct*&)
Unexecuted instantiation: void Botan::ignore_params<botan_pubkey_struct**&, botan_mp_struct*&, botan_mp_struct*&, botan_mp_struct*&>(botan_pubkey_struct**&, botan_mp_struct*&, botan_mp_struct*&, botan_mp_struct*&)
Unexecuted instantiation: void Botan::ignore_params<botan_privkey_struct**&, unsigned char const*&>(botan_privkey_struct**&, unsigned char const*&)
Unexecuted instantiation: void Botan::ignore_params<botan_pubkey_struct**&, unsigned char const*&>(botan_pubkey_struct**&, unsigned char const*&)
Unexecuted instantiation: void Botan::ignore_params<botan_privkey_struct*&, unsigned char*&>(botan_privkey_struct*&, unsigned char*&)
Unexecuted instantiation: void Botan::ignore_params<botan_pubkey_struct*&, unsigned char*&>(botan_pubkey_struct*&, unsigned char*&)
Unexecuted instantiation: void Botan::ignore_params<botan_privkey_struct**&, unsigned char const*&, unsigned long&>(botan_privkey_struct**&, unsigned char const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_pubkey_struct**&, unsigned char const*&, unsigned long&>(botan_pubkey_struct**&, unsigned char const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_privkey_struct*&, char const*&, unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&>(botan_privkey_struct*&, char const*&, unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_pubkey_struct*&, botan_rng_struct*&, char const*&, unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&>(botan_pubkey_struct*&, botan_rng_struct*&, char const*&, unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_srp6_server_session_struct**&>(botan_srp6_server_session_struct**&)
Unexecuted instantiation: void Botan::ignore_params<char const*&, unsigned long*&>(char const*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_srp6_server_session_struct*&, unsigned char const*&, unsigned long&, char const*&, char const*&, botan_rng_struct*&, unsigned char*&, unsigned long*&>(botan_srp6_server_session_struct*&, unsigned char const*&, unsigned long&, char const*&, char const*&, botan_rng_struct*&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_srp6_server_session_struct*&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&>(botan_srp6_server_session_struct*&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<char const*&, char const*&, char const*&, char const*&>(char const*&, char const*&, char const*&, char const*&)
Unexecuted instantiation: void Botan::ignore_params<unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&>(unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<char const*&, char const*&, char const*&, char const*&, botan_rng_struct*&>(char const*&, char const*&, char const*&, char const*&, botan_rng_struct*&)
Unexecuted instantiation: void Botan::ignore_params<unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&, unsigned char*&, unsigned long*&>(unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char*&, unsigned long*&, unsigned char*&, unsigned long*&)
Unexecuted instantiation: void Botan::ignore_params<botan_totp_struct**&, unsigned char const*&, unsigned long&, char const*&, unsigned long&, unsigned long&>(botan_totp_struct**&, unsigned char const*&, unsigned long&, char const*&, unsigned long&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_totp_struct*&>(botan_totp_struct*&)
Unexecuted instantiation: void Botan::ignore_params<botan_totp_struct*&, unsigned int*&, unsigned long&>(botan_totp_struct*&, unsigned int*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<botan_totp_struct*&, unsigned int&, unsigned long&, unsigned long&>(botan_totp_struct*&, unsigned int&, unsigned long&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<unsigned long&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char**&>(unsigned long&, unsigned long&, unsigned char const*&, unsigned long&, unsigned char**&)
Unexecuted instantiation: void Botan::ignore_params<unsigned long&, unsigned long&, unsigned long const*&, unsigned char* const* const&, unsigned long&, unsigned char**&>(unsigned long&, unsigned long&, unsigned long const*&, unsigned char* const* const&, unsigned long&, unsigned char**&)
Unexecuted instantiation: void Botan::ignore_params<unsigned char const*&>(unsigned char const*&)
Unexecuted instantiation: void Botan::ignore_params<std::__1::span<unsigned char const, 18446744073709551615ul>&>(std::__1::span<unsigned char const, 18446744073709551615ul>&)
void Botan::ignore_params<unsigned long const&, unsigned long const&>(unsigned long const&, unsigned long const&)
Line
Count
Source
114
154M
constexpr void ignore_params(T&&... args) {
115
154M
   (ignore_param(args), ...);
116
154M
}
void Botan::ignore_params<unsigned long const&>(unsigned long const&)
Line
Count
Source
114
768k
constexpr void ignore_params(T&&... args) {
115
768k
   (ignore_param(args), ...);
116
768k
}
void Botan::ignore_params<unsigned long const*&, unsigned long&>(unsigned long const*&, unsigned long&)
Line
Count
Source
114
203k
constexpr void ignore_params(T&&... args) {
115
203k
   (ignore_param(args), ...);
116
203k
}
void Botan::ignore_params<std::__1::vector<unsigned long, Botan::secure_allocator<unsigned long> >&>(std::__1::vector<unsigned long, Botan::secure_allocator<unsigned long> >&)
Line
Count
Source
114
148M
constexpr void ignore_params(T&&... args) {
115
148M
   (ignore_param(args), ...);
116
148M
}
void Botan::ignore_params<long&>(long&)
Line
Count
Source
114
148M
constexpr void ignore_params(T&&... args) {
115
148M
   (ignore_param(args), ...);
116
148M
}
Unexecuted instantiation: void Botan::ignore_params<unsigned char const*&, unsigned char const*&>(unsigned char const*&, unsigned char const*&)
Unexecuted instantiation: void Botan::ignore_params<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool&, unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool&, unsigned char const*&, unsigned long&, unsigned char const*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, Botan::EC_Group const&, Botan::RandomNumberGenerator&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, Botan::EC_Group const&, Botan::RandomNumberGenerator&)
Unexecuted instantiation: void Botan::ignore_params<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Unexecuted instantiation: void Botan::ignore_params<Botan::Private_Key const&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(Botan::Private_Key const&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Unexecuted instantiation: void Botan::ignore_params<Botan::Private_Key const&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned long&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(Botan::Private_Key const&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned long&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Unexecuted instantiation: void Botan::ignore_params<Botan::Private_Key const&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >&, unsigned long*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(Botan::Private_Key const&, Botan::RandomNumberGenerator&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >&, unsigned long*&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Unexecuted instantiation: void Botan::ignore_params<std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()> const&>(std::__1::function<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > ()> const&)
Unexecuted instantiation: void Botan::ignore_params<void*&, unsigned long&>(void*&, unsigned long&)
Unexecuted instantiation: void Botan::ignore_params<std::__1::span<unsigned char const, 18446744073709551615ul>&, std::__1::span<unsigned char const, 18446744073709551615ul>&>(std::__1::span<unsigned char const, 18446744073709551615ul>&, std::__1::span<unsigned char const, 18446744073709551615ul>&)
117
118
544M
#define BOTAN_UNUSED Botan::ignore_params
119
120
/*
121
* Define Botan::assert_unreachable and BOTAN_ASSERT_UNREACHABLE
122
*
123
* This is intended to be used in the same situations as `std::unreachable()`;
124
* a codepath that (should not) be reachable but where the compiler cannot
125
* tell that it is unreachable.
126
*
127
* Unlike `std::unreachable()`, or equivalent compiler builtins like GCC's
128
* `__builtin_unreachable`, this function is not UB. By default it will
129
* throw an exception. If `BOTAN_TERMINATE_ON_ASSERTS` is defined, it will
130
* instead print a message to stderr and abort.
131
*
132
* Due to this difference, and the fact that it is not inlined, calling
133
* this is significantly more costly than using `std::unreachable`.
134
*/
135
[[noreturn]] void BOTAN_UNSTABLE_API assert_unreachable(const char* file, int line);
136
137
0
#define BOTAN_ASSERT_UNREACHABLE() Botan::assert_unreachable(__FILE__, __LINE__)
138
139
}  // namespace Botan
140
141
#endif