2 #define IDENT(n) __IDENT(n## _ident, #n, 0)
3 #define IDENT_RESERVED(n) __IDENT(n## _ident, #n, 1)
5 /* Basic C reserved words.. */
6 IDENT_RESERVED(sizeof);
9 IDENT_RESERVED(return);
10 IDENT_RESERVED(switch);
12 IDENT_RESERVED(default);
13 IDENT_RESERVED(break);
14 IDENT_RESERVED(continue);
16 IDENT_RESERVED(while);
20 /* C typenames. They get marked as reserved when initialized */
24 IDENT(__attribute
); IDENT(__attribute__
);
25 IDENT(volatile); IDENT(__volatile
); IDENT(__volatile__
);
27 /* Extended gcc identifiers */
28 IDENT(asm); IDENT_RESERVED(__asm
); IDENT_RESERVED(__asm__
);
29 IDENT(alignof
); IDENT_RESERVED(__alignof
); IDENT_RESERVED(__alignof__
);
30 IDENT_RESERVED(__sizeof_ptr__
);
31 IDENT_RESERVED(__builtin_types_compatible_p
);
32 IDENT_RESERVED(__builtin_offsetof
);
35 IDENT(packed
); IDENT(__packed__
);
36 IDENT(aligned
); IDENT(__aligned__
);
43 IDENT(mode
); IDENT(__mode__
);
44 IDENT(QI
); IDENT(__QI__
);
45 IDENT(HI
); IDENT(__HI__
);
46 IDENT(SI
); IDENT(__SI__
);
47 IDENT(DI
); IDENT(__DI__
);
48 IDENT(word
); IDENT(__word__
);
49 IDENT(format
); IDENT(__format__
);
50 IDENT(section
); IDENT(__section__
);
51 IDENT(unused
); IDENT(__unused__
);
52 IDENT(const); IDENT(__const
); IDENT(__const__
);
53 IDENT(used
); IDENT(__used__
);
54 IDENT(warn_unused_result
); IDENT(__warn_unused_result__
);
55 IDENT(noinline
); IDENT(__noinline__
);
56 IDENT(deprecated
); IDENT(__deprecated__
);
57 IDENT(noreturn
); IDENT(__noreturn__
);
58 IDENT(regparm
); IDENT(__regparm__
);
59 IDENT(weak
); IDENT(__weak__
);
60 IDENT(no_instrument_function
); IDENT(__no_instrument_function__
);
61 IDENT(sentinel
); IDENT(__sentinel__
);
62 IDENT(alias
); IDENT(__alias__
);
63 IDENT(pure
); IDENT(__pure__
);
64 IDENT(always_inline
); IDENT(__always_inline__
);
65 IDENT(syscall_linkage
); IDENT(__syscall_linkage__
);
66 IDENT(visibility
); IDENT(__visibility__
);
67 IDENT(bitwise
); IDENT(__bitwise__
);
68 IDENT(model
); IDENT(__model__
);
69 IDENT(format_arg
); IDENT(__format_arg__
);
70 IDENT(nothrow
); IDENT(__nothrow
); IDENT(__nothrow__
);
71 IDENT(__transparent_union__
);
74 IDENT(nonnull
); IDENT(__nonnull
); IDENT(__nonnull__
);
75 IDENT(constructor
); IDENT(__constructor__
);
76 IDENT(destructor
); IDENT(__destructor__
);
77 IDENT(cold
); IDENT(__cold__
);
78 IDENT(hot
); IDENT(__hot__
);
79 IDENT(cdecl); IDENT(__cdecl__
);
80 IDENT(stdcall); IDENT(__stdcall__
);
81 IDENT(fastcall
); IDENT(__fastcall__
);
82 IDENT(dllimport
); IDENT(__dllimport__
);
83 IDENT(dllexport
); IDENT(__dllexport__
);
85 /* Preprocessor idents. Direct use of __IDENT avoids mentioning the keyword
86 * itself by name, preventing these tokens from expanding when compiling
89 __IDENT(pragma_ident
, "__pragma__", 0);
90 __IDENT(__VA_ARGS___ident
, "__VA_ARGS__", 0);
91 __IDENT(__LINE___ident
, "__LINE__", 0);
92 __IDENT(__FILE___ident
, "__FILE__", 0);
93 __IDENT(__DATE___ident
, "__DATE__", 0);
94 __IDENT(__TIME___ident
, "__TIME__", 0);
95 __IDENT(__func___ident
, "__func__", 0);
96 __IDENT(__FUNCTION___ident
, "__FUNCTION__", 0);
97 __IDENT(__PRETTY_FUNCTION___ident
, "__PRETTY_FUNCTION__", 0);
100 IDENT_RESERVED(__context__
);
101 IDENT_RESERVED(__range__
);
103 /* Magic function names we recognize */
104 IDENT(memset
); IDENT(memcpy
);
105 IDENT(copy_to_user
); IDENT(copy_from_user
);
110 #undef IDENT_RESERVED