mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:47:44 +00:00
Move assertion failures out-of-line to reduce binary bloat.
This commit is contained in:
parent
7fe4063323
commit
8b4b684d6d
2 changed files with 10 additions and 1 deletions
|
@ -3,8 +3,10 @@
|
|||
#include "kprintf.h"
|
||||
#include "i386.h"
|
||||
|
||||
void __assertion_failed(const char* msg, const char* file, unsigned line, const char* func) NORETURN;
|
||||
|
||||
#define ASSERT(expr) (static_cast<bool>(expr) ? (void)0 : __assertion_failed(#expr, __FILE__, __LINE__, __PRETTY_FUNCTION__))
|
||||
#define CRASH() do { asm volatile("ud2"); } while(0)
|
||||
#define ASSERT(x) do { if (!(x)) { asm volatile("cli"); kprintf("ASSERTION FAILED: " #x "\n%s:%u in %s\n", __FILE__, __LINE__, __PRETTY_FUNCTION__); CRASH(); } } while(0)
|
||||
#define RELEASE_ASSERT(x) do { if (!(x)) CRASH(); } while(0)
|
||||
#define ASSERT_NOT_REACHED() ASSERT(false)
|
||||
#define ASSERT_INTERRUPTS_DISABLED() ASSERT(!(cpuFlags() & 0x200))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue