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
);
34 IDENT(packed
); IDENT(__packed__
);
35 IDENT(aligned
); IDENT(__aligned__
);
42 IDENT(mode
); IDENT(__mode__
);
43 IDENT(QI
); IDENT(__QI__
);
44 IDENT(HI
); IDENT(__HI__
);
45 IDENT(SI
); IDENT(__SI__
);
46 IDENT(DI
); IDENT(__DI__
);
47 IDENT(word
); IDENT(__word__
);
48 IDENT(format
); IDENT(__format__
);
49 IDENT(section
); IDENT(__section__
);
50 IDENT(unused
); IDENT(__unused__
);
51 IDENT(const); IDENT(__const
); IDENT(__const__
);
52 IDENT(used
); IDENT(__used__
);
53 IDENT(warn_unused_result
); IDENT(__warn_unused_result__
);
54 IDENT(noinline
); IDENT(__noinline__
);
55 IDENT(deprecated
); IDENT(__deprecated__
);
56 IDENT(noreturn
); IDENT(__noreturn__
);
57 IDENT(regparm
); IDENT(__regparm__
);
58 IDENT(weak
); IDENT(__weak__
);
59 IDENT(no_instrument_function
); IDENT(__no_instrument_function__
);
60 IDENT(sentinel
); IDENT(__sentinel__
);
61 IDENT(alias
); IDENT(__alias__
);
62 IDENT(pure
); IDENT(__pure__
);
63 IDENT(always_inline
); IDENT(__always_inline__
);
64 IDENT(syscall_linkage
); IDENT(__syscall_linkage__
);
65 IDENT(visibility
); IDENT(__visibility__
);
66 IDENT(bitwise
); IDENT(__bitwise__
);
67 IDENT(model
); IDENT(__model__
);
68 IDENT(format_arg
); IDENT(__format_arg__
);
69 IDENT(nothrow
); IDENT(__nothrow
); IDENT(__nothrow__
);
70 IDENT(__transparent_union__
);
72 IDENT(nonnull
); IDENT(__nonnull
); IDENT(__nonnull__
);
73 IDENT(constructor
); IDENT(__constructor__
);
74 IDENT(destructor
); IDENT(__destructor__
);
75 IDENT(cdecl); IDENT(__cdecl__
);
76 IDENT(stdcall); IDENT(__stdcall__
);
77 IDENT(fastcall
); IDENT(__fastcall__
);
78 IDENT(dllimport
); IDENT(__dllimport__
);
79 IDENT(dllexport
); IDENT(__dllexport__
);
81 /* Preprocessor idents. Direct use of __IDENT avoids mentioning the keyword
82 * itself by name, preventing these tokens from expanding when compiling
85 __IDENT(pragma_ident
, "__pragma__", 0);
86 __IDENT(__VA_ARGS___ident
, "__VA_ARGS__", 0);
87 __IDENT(__LINE___ident
, "__LINE__", 0);
88 __IDENT(__FILE___ident
, "__FILE__", 0);
89 __IDENT(__DATE___ident
, "__DATE__", 0);
90 __IDENT(__TIME___ident
, "__TIME__", 0);
91 __IDENT(__func___ident
, "__func__", 0);
92 __IDENT(__FUNCTION___ident
, "__FUNCTION__", 0);
93 __IDENT(__PRETTY_FUNCTION___ident
, "__PRETTY_FUNCTION__", 0);
96 IDENT_RESERVED(__context__
);
97 IDENT_RESERVED(__range__
);
99 /* Magic function names we recognize */
100 IDENT(memset
); IDENT(memcpy
);
101 IDENT(copy_to_user
); IDENT(copy_from_user
);
106 #undef IDENT_RESERVED