7 #define FW_ASSERT_FIRST_ARG(ARG_0, ...) ARG_0 9 #define FW_ASSERT_NO_FIRST_ARG(ARG_0, ...) __VA_ARGS__ 11 #if FW_ASSERT_LEVEL == FW_NO_ASSERT 14 #define FW_ASSERT(...) ((void)(FW_ASSERT_FIRST_ARG(__VA_ARGS__))) 16 #define FILE_NAME_ARG const CHAR* 17 #else // ASSERT is defined 21 #if FW_ASSERT_LEVEL == FW_FILEID_ASSERT && defined ASSERT_FILE_ID 22 #define FILE_NAME_ARG U32 23 #define FW_ASSERT(...) \ 24 ((void)((FW_ASSERT_FIRST_ARG(__VA_ARGS__, 0)) \ 26 : (Fw::SwAssert(ASSERT_FILE_ID, FW_ASSERT_NO_FIRST_ARG(__VA_ARGS__, __LINE__))))) 27 #elif FW_ASSERT_LEVEL == FW_FILEID_ASSERT && !defined ASSERT_FILE_ID 28 #define FILE_NAME_ARG U32 29 #define FW_ASSERT(...) \ 30 ((void)((FW_ASSERT_FIRST_ARG(__VA_ARGS__, 0)) \ 32 : (Fw::SwAssert(static_cast<U32>(0), FW_ASSERT_NO_FIRST_ARG(__VA_ARGS__, __LINE__))))) 33 #elif FW_ASSERT_LEVEL == FW_RELATIVE_PATH_ASSERT && defined ASSERT_RELATIVE_PATH 34 #define FILE_NAME_ARG const CHAR* 35 #define FW_ASSERT(...) \ 36 ((void)((FW_ASSERT_FIRST_ARG(__VA_ARGS__, 0)) \ 38 : (Fw::SwAssert(ASSERT_RELATIVE_PATH, FW_ASSERT_NO_FIRST_ARG(__VA_ARGS__, __LINE__))))) 40 #define FILE_NAME_ARG const CHAR* 41 #define FW_ASSERT(...) \ 42 ((void)((FW_ASSERT_FIRST_ARG(__VA_ARGS__, 0)) \ 44 : (Fw::SwAssert(__FILE__, FW_ASSERT_NO_FIRST_ARG(__VA_ARGS__, __LINE__))))) 46 #endif // if ASSERT is defined 51 #ifndef CLANG_ANALYZER_NORETURN 53 #define __has_feature(x) 0 // Compatibility with non-clang compilers. 55 #if __has_feature(attribute_analyzer_noreturn) 56 #define CLANG_ANALYZER_NORETURN __attribute__((analyzer_noreturn)) 58 #define CLANG_ANALYZER_NORETURN 146 #endif // FW_ASSERT_HPP PlatformSizeType FwSizeType
I8 SwAssert(FILE_NAME_ARG file, FwSizeType lineNo)
Assert with no arguments.
int8_t I8
8-bit signed integer
virtual void reportAssert(FILE_NAME_ARG file, FwSizeType lineNo, FwSizeType numArgs, FwAssertArgType arg1, FwAssertArgType arg2, FwAssertArgType arg3, FwAssertArgType arg4, FwAssertArgType arg5, FwAssertArgType arg6)
destructor
virtual ~AssertHook()
constructor
#define CLANG_ANALYZER_NORETURN
virtual void printAssert(const CHAR *msg)
PlatformAssertArgType FwAssertArgType
The type of arguments to assert functions.