summaryrefslogtreecommitdiff
path: root/tinyusb/common
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb/common')
-rw-r--r--tinyusb/common/common.h9
-rw-r--r--tinyusb/common/compiler/compiler.h10
-rw-r--r--tinyusb/common/compiler/compiler_gcc.h2
3 files changed, 12 insertions, 9 deletions
diff --git a/tinyusb/common/common.h b/tinyusb/common/common.h
index 0f02cb3f0..76e38c0a0 100644
--- a/tinyusb/common/common.h
+++ b/tinyusb/common/common.h
@@ -76,15 +76,6 @@
#include "core/std_descriptors.h"
#include "core/std_request.h"
-// TODO try to manipulate gcc cmd option instead
-#ifndef _TEST_
- #define STATIC_ static
- #define INLINE_ inline
-#else
- #define STATIC_
- #define INLINE_
-#endif
-
#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
diff --git a/tinyusb/common/compiler/compiler.h b/tinyusb/common/compiler/compiler.h
index b3439f1b6..8eb01ef3e 100644
--- a/tinyusb/common/compiler/compiler.h
+++ b/tinyusb/common/compiler/compiler.h
@@ -51,6 +51,16 @@
#ifndef _TUSB_COMPILER_H_
#define _TUSB_COMPILER_H_
+#ifdef _TEST_
+ #define ATTR_ALWAYS_INLINE
+ #define STATIC_
+ #define INLINE_
+#else
+ #define STATIC_ static
+ #define INLINE_ inline
+#endif
+
+
#if defined(__GNUC__)
#include "compiler_gcc.h"
#elif defined __ICCARM__ // IAR compiler
diff --git a/tinyusb/common/compiler/compiler_gcc.h b/tinyusb/common/compiler/compiler_gcc.h
index 8732b6cef..b778f6b92 100644
--- a/tinyusb/common/compiler/compiler_gcc.h
+++ b/tinyusb/common/compiler/compiler_gcc.h
@@ -79,8 +79,10 @@
* @{
*/
+#ifndef ATTR_ALWAYS_INLINE
/// Generally, functions are not inlined unless optimization is specified. For functions declared inline, this attribute inlines the function even if no optimization level is specified
#define ATTR_ALWAYS_INLINE __attribute__ ((always_inline))
+#endif
/// The nonnull attribute specifies that some function parameters should be non-null pointers. f the compiler determines that a null pointer is passed in an argument slot marked as non-null, and the -Wnonnull option is enabled, a warning is issued. All pointer arguments are marked as non-null
#define ATTR_NON_NULL __attribute__ ((nonull))