/* See COPYRIGHT for copyright information. */ #ifndef JOS_INC_ASSERT_H #define JOS_INC_ASSERT_H #include void _warn(const char*, int, const char*, ...); void _panic(const char*, int, const char*, ...) __attribute__((noreturn)); #define warn(...) _warn(__FILE__, __LINE__, __VA_ARGS__) #define panic(...) _panic(__FILE__, __LINE__, __VA_ARGS__) #define assert(x) \ do { if (!(x)) panic("assertion failed: %s", #x); } while (0) // static_assert(x) will generate a compile-time error if 'x' is false. #define static_assert(x) switch (x) case 0: case (x): #endif /* !JOS_INC_ASSERT_H */