20 /* C typenames. They get marked as reserved when initialized */
21 IDENT(struct);
22 IDENT(union);
23 IDENT(enum);
24 IDENT(__attribute); IDENT(__attribute__);
25 IDENT(volatile); IDENT(__volatile); IDENT(__volatile__);
26 IDENT(double);
27
28 /* C storage classes. They get marked as reserved when initialized */
29 IDENT(static);
30
31 /* C99 keywords */
32 IDENT(restrict); IDENT(__restrict); IDENT(__restrict__);
33 IDENT(_Bool);
34 IDENT(_Complex);
35 IDENT_RESERVED(_Imaginary);
36
37 /* C11 keywords */
38 IDENT(_Alignas);
39 IDENT_RESERVED(_Alignof);
40 IDENT_RESERVED(_Atomic);
41 IDENT_RESERVED(_Generic);
42 IDENT(_Noreturn);
43 IDENT_RESERVED(_Static_assert);
44 IDENT(_Thread_local);
45
46 /* Special case for L'\t' */
47 IDENT(L);
48
49 /* Extended gcc identifiers */
50 IDENT(asm); IDENT_RESERVED(__asm); IDENT_RESERVED(__asm__);
51 IDENT(alignof); IDENT_RESERVED(__alignof); IDENT_RESERVED(__alignof__);
52 IDENT_RESERVED(__sizeof_ptr__);
53 IDENT_RESERVED(__builtin_types_compatible_p);
54 IDENT_RESERVED(__builtin_offsetof);
55 IDENT_RESERVED(__label__);
56
57 /* Preprocessor idents. Direct use of __IDENT avoids mentioning the keyword
58 * itself by name, preventing these tokens from expanding when compiling
59 * sparse. */
60 IDENT(defined);
61 IDENT(once);
62 __IDENT(pragma_ident, "__pragma__", 0);
63 __IDENT(_Pragma_ident, "_Pragma", 0);
64 __IDENT(__VA_ARGS___ident, "__VA_ARGS__", 0);
65 __IDENT(__LINE___ident, "__LINE__", 0);
66 __IDENT(__FILE___ident, "__FILE__", 0);
67 __IDENT(__DATE___ident, "__DATE__", 0);
68 __IDENT(__TIME___ident, "__TIME__", 0);
69 __IDENT(__func___ident, "__func__", 0);
70 __IDENT(__FUNCTION___ident, "__FUNCTION__", 0);
71 __IDENT(__PRETTY_FUNCTION___ident, "__PRETTY_FUNCTION__", 0);
72 __IDENT(__COUNTER___ident, "__COUNTER__", 0);
73
74 /* Sparse commands */
75 IDENT_RESERVED(__context__);
76 IDENT_RESERVED(__range__);
77
78 /* Magic function names we recognize */
79 IDENT(memset); IDENT(memcpy);
80 IDENT(copy_to_user); IDENT(copy_from_user);
81 IDENT(main);
82
83 #undef __IDENT
84 #undef IDENT
85 #undef IDENT_RESERVED
|
20 /* C typenames. They get marked as reserved when initialized */
21 IDENT(struct);
22 IDENT(union);
23 IDENT(enum);
24 IDENT(__attribute); IDENT(__attribute__);
25 IDENT(volatile); IDENT(__volatile); IDENT(__volatile__);
26 IDENT(double);
27
28 /* C storage classes. They get marked as reserved when initialized */
29 IDENT(static);
30
31 /* C99 keywords */
32 IDENT(restrict); IDENT(__restrict); IDENT(__restrict__);
33 IDENT(_Bool);
34 IDENT(_Complex);
35 IDENT_RESERVED(_Imaginary);
36
37 /* C11 keywords */
38 IDENT(_Alignas);
39 IDENT_RESERVED(_Alignof);
40 IDENT(_Atomic);
41 IDENT_RESERVED(_Generic);
42 IDENT(_Noreturn);
43 IDENT_RESERVED(_Static_assert);
44 IDENT(_Thread_local);
45
46 /* Special case for L'\t' */
47 IDENT(L);
48
49 /* Extended gcc identifiers */
50 IDENT(asm); IDENT_RESERVED(__asm); IDENT_RESERVED(__asm__);
51 IDENT(alignof); IDENT_RESERVED(__alignof); IDENT_RESERVED(__alignof__);
52 IDENT_RESERVED(__sizeof_ptr__);
53 IDENT_RESERVED(__builtin_types_compatible_p);
54 IDENT_RESERVED(__builtin_offsetof);
55 IDENT_RESERVED(__label__);
56
57 /* Preprocessor idents. Direct use of __IDENT avoids mentioning the keyword
58 * itself by name, preventing these tokens from expanding when compiling
59 * sparse. */
60 IDENT(defined);
61 IDENT(once);
62 IDENT(__has_attribute);
63 IDENT(__has_builtin);
64 __IDENT(pragma_ident, "__pragma__", 0);
65 __IDENT(_Pragma_ident, "_Pragma", 0);
66 __IDENT(__VA_ARGS___ident, "__VA_ARGS__", 0);
67 __IDENT(__func___ident, "__func__", 0);
68 __IDENT(__FUNCTION___ident, "__FUNCTION__", 0);
69 __IDENT(__PRETTY_FUNCTION___ident, "__PRETTY_FUNCTION__", 0);
70
71 /* Sparse commands */
72 IDENT_RESERVED(__context__);
73 IDENT_RESERVED(__range__);
74
75 /* Magic function names we recognize */
76 IDENT(memset); IDENT(memcpy);
77 IDENT(copy_to_user); IDENT(copy_from_user);
78 IDENT(main);
79
80 #undef __IDENT
81 #undef IDENT
82 #undef IDENT_RESERVED
|