clean up static assert

This commit is contained in:
hathach 2018-03-28 14:30:32 +07:00
parent 43ac711795
commit 0d3e66fa0a
2 changed files with 5 additions and 20 deletions

View File

@ -50,18 +50,18 @@
#define XSTRING_CONCAT_(a, b) STRING_CONCAT_(a, b) ///< expand then concat #define XSTRING_CONCAT_(a, b) STRING_CONCAT_(a, b) ///< expand then concat
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// Compile-time Assert // Compile-time Assert (use VERIFY_STATIC to avoid name conflict)
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
#ifdef __ICCARM__ #if defined(__ICCARM__) || (__STDC_VERSION__ >= 201112L )
#define VERIFY_STATIC static_assert #define VERIFY_STATIC static_assert
#else #else
#if defined __COUNTER__ && __COUNTER__ != __COUNTER__ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__
#define _ASSERT_COUNTER __COUNTER__ #define _VERIFY_COUNTER __COUNTER__
#else #else
#define _ASSERT_COUNTER __LINE__ #define _VERIFY_COUNTER __LINE__
#endif #endif
#define VERIFY_STATIC(const_expr, message) enum { XSTRING_CONCAT_(static_assert_, _ASSERT_COUNTER) = 1/(!!(const_expr)) } #define VERIFY_STATIC(const_expr, _mess) enum { XSTRING_CONCAT_(_verify_static_, _VERIFY_COUNTER) = 1/(!!(const_expr)) }
#endif #endif
// allow debugger to watch any module-wide variables anywhere // allow debugger to watch any module-wide variables anywhere

View File

@ -51,21 +51,6 @@
#define GET_3RD_ARG(arg1, arg2, arg3, ...) arg3 #define GET_3RD_ARG(arg1, arg2, arg3, ...) arg3
#define GET_4TH_ARG(arg1, arg2, arg3, arg4, ...) arg4 #define GET_4TH_ARG(arg1, arg2, arg3, arg4, ...) arg4
//--------------------------------------------------------------------+
// Compile-time Verify (like assert static)
//--------------------------------------------------------------------+
#ifdef __ICCARM__
#define VERIFY_STATIC static_assert
#else
#if defined __COUNTER__ && __COUNTER__ != __COUNTER__
#define _VERIFY_COUNTER __COUNTER__
#else
#define _VERIFY_COUNTER __LINE__
#endif
#define VERIFY_STATIC(const_expr, _mess) enum { XSTRING_CONCAT_(_verify_static_, _VERIFY_COUNTER) = 1/(!!(const_expr)) }
#endif
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
// VERIFY Helper // VERIFY Helper
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+