blob: a03e9398a6c2ba0d986405f8bec84f7f0141b786 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/* Never include this file directly. Include <linux/compiler.h> instead. */
2
3/* These definitions are for GCC v4.x. */
4#include <linux/compiler-gcc.h>
5
Ingo Molnara9df3d02006-01-14 13:21:33 -08006#ifdef CONFIG_FORCED_INLINING
7# undef inline
8# undef __inline__
9# undef __inline
10# define inline inline __attribute__((always_inline))
11# define __inline__ __inline__ __attribute__((always_inline))
12# define __inline __inline __attribute__((always_inline))
13#endif
14
David Rientjes0d7ebbb2007-05-09 02:35:27 -070015#define __used __attribute__((__used__))
16#define __attribute_used__ __used /* deprecated */
Linus Torvalds1da177e2005-04-16 15:20:36 -070017#define __must_check __attribute__((warn_unused_result))
18#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
Ingo Molnar40fc55c2006-01-14 13:21:28 -080019#define __always_inline inline __attribute__((always_inline))
Borislav Petkov94909912007-05-06 14:49:17 -070020
21/*
22 * A trick to suppress uninitialized variable warning without generating any
23 * code
24 */
25#define uninitialized_var(x) x = x