2012-11-21 05:13:10 +08:00
|
|
|
#ifndef __LINUX_COMPILER_H
|
|
|
|
#error "Please don't include <linux/compiler-clang.h> directly, include <linux/compiler.h> instead."
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Some compiler specific definitions are overwritten here
|
|
|
|
* for Clang compiler
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef uninitialized_var
|
|
|
|
#undef uninitialized_var
|
|
|
|
#define uninitialized_var(x) x = *(&(x))
|
|
|
|
#endif
|
2016-02-08 22:38:32 +08:00
|
|
|
|
|
|
|
/* same as gcc, this was present in clang-2.6 so we can assume it works
|
|
|
|
* with any version that can compile the kernel
|
|
|
|
*/
|
|
|
|
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
2017-06-07 04:36:24 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* GCC does not warn about unused static inline functions for
|
|
|
|
* -Wunused-function. This turns out to avoid the need for complex #ifdef
|
|
|
|
* directives. Suppress the warning in clang as well.
|
|
|
|
*/
|
2017-06-12 06:51:56 +08:00
|
|
|
#undef inline
|
|
|
|
#define inline inline __attribute__((unused)) notrace
|