summaryrefslogtreecommitdiff
path: root/tinyusb/common/compiler/compiler.h
diff options
context:
space:
mode:
authorhathach <[email protected]>2014-04-17 22:57:11 +0700
committerhathach <[email protected]>2014-04-17 22:57:11 +0700
commit06bb9ad7a797d5da58358a59fb874782e1c67b59 (patch)
tree399b4e7108dc4ef2094468450865fcbbc2ae3dfa /tinyusb/common/compiler/compiler.h
parent69c46b2f9a1b272392fe5fb26d6cbea1da530c13 (diff)
move STRING & XSTRING & STATIC_ASSERT to compiler.h
disable test for a class of cdc host temporarily disable test for test_osal_none.c change include in some core files remove osal.h from common.h
Diffstat (limited to 'tinyusb/common/compiler/compiler.h')
-rw-r--r--tinyusb/common/compiler/compiler.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/tinyusb/common/compiler/compiler.h b/tinyusb/common/compiler/compiler.h
index e628ce7c1..0103bc945 100644
--- a/tinyusb/common/compiler/compiler.h
+++ b/tinyusb/common/compiler/compiler.h
@@ -44,6 +44,26 @@
#ifndef _TUSB_COMPILER_H_
#define _TUSB_COMPILER_H_
+#define STRING_(x) #x ///< stringify without expand
+#define XSTRING_(x) STRING_(x) ///< expand then stringify
+#define STRING_CONCAT_(a, b) a##b ///< concat without expand
+#define XSTRING_CONCAT_(a, b) STRING_CONCAT_(a, b) ///< expand then concat
+
+//--------------------------------------------------------------------+
+// Compile-time Assert
+//--------------------------------------------------------------------+
+#ifdef __ICCARM__
+ #define STATIC_ASSERT static_assert
+#else
+ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__
+ #define _ASSERT_COUNTER __COUNTER__
+ #else
+ #define _ASSERT_COUNTER __LINE__
+ #endif
+
+ #define STATIC_ASSERT(const_expr, message) enum { XSTRING_CONCAT_(static_assert_, _ASSERT_COUNTER) = 1/(!!(const_expr)) }
+#endif
+
#ifndef _TEST_
// TODO move some to tusb_option.h
#define STATIC_ static