|
@@ -665,6 +665,7 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
|
|
|
#define BUILD_BUG_ON_ZERO(e) (0)
|
|
|
#define BUILD_BUG_ON_NULL(e) ((void*)0)
|
|
|
#define BUILD_BUG_ON(condition)
|
|
|
+#define BUILD_BUG() (0)
|
|
|
#else /* __CHECKER__ */
|
|
|
|
|
|
/* Force a compilation error if a constant expression is not a power of 2 */
|
|
@@ -703,6 +704,21 @@ extern int __build_bug_on_failed;
|
|
|
if (condition) __build_bug_on_failed = 1; \
|
|
|
} while(0)
|
|
|
#endif
|
|
|
+
|
|
|
+/**
|
|
|
+ * BUILD_BUG - break compile if used.
|
|
|
+ *
|
|
|
+ * If you have some code that you expect the compiler to eliminate at
|
|
|
+ * build time, you should use BUILD_BUG to detect if it is
|
|
|
+ * unexpectedly used.
|
|
|
+ */
|
|
|
+#define BUILD_BUG() \
|
|
|
+ do { \
|
|
|
+ extern void __build_bug_failed(void) \
|
|
|
+ __linktime_error("BUILD_BUG failed"); \
|
|
|
+ __build_bug_failed(); \
|
|
|
+ } while (0)
|
|
|
+
|
|
|
#endif /* __CHECKER__ */
|
|
|
|
|
|
/* Trap pasters of __FUNCTION__ at compile-time */
|