FANDOM


このページを編集する際は,編集に関する方針に従ってください. 編集

概要 編集

実装 編集

35 /* Each macro definition is recorded in a cpp_macro structure.
36    Variadic macros cannot occur with traditional cpp.  */
37 struct cpp_macro GTY(())
38 {
39   /* Parameters, if any.  */
40   cpp_hashnode ** GTY ((nested_ptr (union tree_node,
41                 "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
42                         "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
43                         length ("%h.paramc")))
44     params;
45 
46   /* Replacement tokens (ISO) or replacement text (traditional).  See
47      comment at top of cpptrad.c for how traditional function-like
48      macros are encoded.  */
49   union cpp_macro_u
50   {
51     cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens;
52     const unsigned char * GTY ((tag ("1"))) text;
53   } GTY ((desc ("%1.traditional"))) exp;
54 
55   /* Definition line number.  */
56   source_location line;
57 
58   /* Number of tokens in expansion, or bytes for traditional macros.  */
59   unsigned int count;
60 
61   /* Number of parameters.  */
62   unsigned short paramc;
63 
64   /* If a function-like macro.  */
65   unsigned int fun_like : 1;
66 
67   /* If a variadic macro.  */
68   unsigned int variadic : 1;
69 
70   /* If macro defined in system header.  */
71   unsigned int syshdr   : 1;
72 
73   /* Nonzero if it has been expanded or had its existence tested.  */
74   unsigned int used     : 1;
75 
76   /* Indicate which field of 'exp' is in use.  */
77   unsigned int traditional : 1;
78 };


リンク元

広告ブロッカーが検出されました。


広告収入で運営されている無料サイトWikiaでは、このたび広告ブロッカーをご利用の方向けの変更が加わりました。

広告ブロッカーが改変されている場合、Wikiaにアクセスしていただくことができなくなっています。カスタム広告ブロッカーを解除してご利用ください。