|
@@ -13,6 +13,10 @@
|
|
|
#define __must_check __attribute__((warn_unused_result))
|
|
|
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
|
|
|
|
|
|
+#if __GNUC_MINOR__ > 0
|
|
|
+# define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
|
|
|
+#endif
|
|
|
+
|
|
|
#if __GNUC_MINOR__ >= 3
|
|
|
/* Mark functions as cold. gcc will assume any path leading to a call
|
|
|
to them will be unlikely. This means a lot of manual unlikely()s
|
|
@@ -33,6 +37,12 @@
|
|
|
|
|
|
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
|
|
|
|
|
+#ifndef __CHECKER__
|
|
|
+# define __compiletime_warning(message) __attribute__((warning(message)))
|
|
|
+# define __compiletime_error(message) __attribute__((error(message)))
|
|
|
+#endif /* __CHECKER__ */
|
|
|
+#endif /* __GNUC_MINOR__ >= 3 */
|
|
|
+
|
|
|
#if __GNUC_MINOR__ >= 5
|
|
|
/*
|
|
|
* Mark a position in code as unreachable. This can be used to
|
|
@@ -48,8 +58,7 @@
|
|
|
/* Mark a function definition as prohibited from being cloned. */
|
|
|
#define __noclone __attribute__((__noclone__))
|
|
|
|
|
|
-#endif
|
|
|
-#endif
|
|
|
+#endif /* __GNUC_MINOR__ >= 5 */
|
|
|
|
|
|
#if __GNUC_MINOR__ >= 6
|
|
|
/*
|
|
@@ -58,13 +67,6 @@
|
|
|
#define __visible __attribute__((externally_visible))
|
|
|
#endif
|
|
|
|
|
|
-#if __GNUC_MINOR__ > 0
|
|
|
-#define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
|
|
|
-#endif
|
|
|
-#if __GNUC_MINOR__ >= 3 && !defined(__CHECKER__)
|
|
|
-#define __compiletime_warning(message) __attribute__((warning(message)))
|
|
|
-#define __compiletime_error(message) __attribute__((error(message)))
|
|
|
-#endif
|
|
|
|
|
|
#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
|
|
#if __GNUC_MINOR__ >= 4
|