0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-29 02:02:38 +01:00

ircd: Attribute nodebug on assert frames, artificial ineffective for clang.

This commit is contained in:
Jason Volk 2023-02-08 18:16:34 -08:00
parent 3f82d32619
commit 39b5a334a6

View file

@ -117,7 +117,7 @@ extern "C" // for clang
/// Override the standard assert behavior, if enabled, to trap into the /// Override the standard assert behavior, if enabled, to trap into the
/// debugger as close as possible to the offending site. /// debugger as close as possible to the offending site.
extern inline void extern inline void
__attribute__((cold, flatten, always_inline, gnu_inline, artificial)) __attribute__((cold, flatten, always_inline, gnu_inline, artificial, nodebug))
__assert_fail(const char *const __assertion, __assert_fail(const char *const __assertion,
const char *const __file, const char *const __file,
unsigned int __line, unsigned int __line,
@ -137,7 +137,7 @@ extern "C" // for clang
/// aborting the program. /// aborting the program.
/// ///
extern inline void extern inline void
__attribute__((always_inline, gnu_inline, artificial)) __attribute__((always_inline, gnu_inline, artificial, nodebug))
ircd::debugtrap() ircd::debugtrap()
noexcept noexcept
{ {
@ -154,7 +154,7 @@ noexcept
/// Trap on false expression whether or not NDEBUG. /// Trap on false expression whether or not NDEBUG.
template<class expr> template<class expr>
extern inline void extern inline void
__attribute__((always_inline, gnu_inline, artificial)) __attribute__((always_inline, gnu_inline, artificial, nodebug))
ircd::always_assert(expr&& x) ircd::always_assert(expr&& x)
noexcept noexcept
{ {