Hi All! While modifying the C lexer to accommodate it for experimental C-derived language front-end, I've stumbled across the following comment in gcc/c-common.h before the "enum rid" definition (still there in gcc-4.5-20090820 snapshot):
42 /* Reserved identifiers. This is the union of all the keywords for C, 43 C++, and Objective-C. All the type modifiers have to be in one 44 block at the beginning, because they are used as mask bits. There 45 are 27 type modifiers; if we add many more we will have to redesign 46 the mask mechanism. */ 47 48 enum rid 49 { 50 /* Modifiers: */ 51 /* C, in empirical order of frequency. */ 52 RID_STATIC = 0, 53 RID_UNSIGNED, RID_LONG, RID_CONST, RID_EXTERN ... Could you please enlighten me -- is the comment still relevant? If so, where the usage of type modifiers entries in enum rid as mask bits can be seen in gcc code (or documentation, if applicable)? I'd like to be aware, since I've defined several (four) additional type modifiers. Thanks in advance, Alexei I. Adamovich