#pragma once #if defined(__is_kernel) #include #define ASSERT(cond) do { if (!(cond)) Kernel::panic("ASSERT("#cond") failed"); } while (false) #define ASSERT_NOT_REACHED() Kernel::panic("ASSERT_NOT_REACHED() failed") #else #include #define ASSERT(cond) assert((cond) && "ASSERT("#cond") failed") #define ASSERT_NOT_REACHED() do { assert(false && "ASSERT_NOT_REACHED() failed"); __builtin_unreachable(); } while (false) #endif