このページを編集する際は,編集に関する方針に従ってください.[]
概要[]
実装[]
186 /* A preprocessing token. This has been carefully packed and should
187 occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */
188 struct cpp_token GTY(())
189 {
190 source_location src_loc; /* Location of first char of token. */
- ENUM_BITFIELD(cpp_ttype)はenum cpp_ttypeに展開される。
191 ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT; /* token type */
192 unsigned char flags; /* flags - see above */
193
194 union cpp_token_u
195 {
196 /* An identifier. */
197 cpp_hashnode *
198 GTY ((nested_ptr (union tree_node,
199 "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
200 "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
201 tag ("CPP_TOKEN_FLD_NODE")))
202 node;
203
204 /* Inherit padding from this token. */
205 cpp_token * GTY ((tag ("CPP_TOKEN_FLD_SOURCE"))) source;
206
207 /* A string, or number. */
208 struct cpp_string GTY ((tag ("CPP_TOKEN_FLD_STR"))) str;
209
210 /* Argument no. for a CPP_MACRO_ARG. */
211 unsigned int GTY ((tag ("CPP_TOKEN_FLD_ARG_NO"))) arg_no;
212: } GTY ((desc ("cpp_token_val_index (&%1)"))) val;
213: };