[PATCH] Move cpp_macro to cpplib.h
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01016.html libcpp/ * cpp-id-data.h (uchar, UC): Move to internal.h (struct cpp_macro): Move to cpplib.h. * internal.h (uchar, UC): From cpp-id-data.h. * include/cpplib.h (struct cpp_macro): From cpp-id-data.h. gcc/c-family/ * c-ada-spec.c: Don't #include "cpp-id-data.h" * c-cppbuiltin.c: Likewise. gcc/ * cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h". From-SVN: r263618
This commit is contained in:
parent
0138492e7b
commit
c5d725c0a8
9 changed files with 74 additions and 59 deletions
|
@ -671,6 +671,57 @@ struct cpp_dir
|
|||
dev_t dev;
|
||||
};
|
||||
|
||||
/* Each macro definition is recorded in a cpp_macro structure.
|
||||
Variadic macros cannot occur with traditional cpp. */
|
||||
struct GTY(()) cpp_macro {
|
||||
/* Parameters, if any. If parameter names use extended identifiers,
|
||||
the original spelling of those identifiers, not the canonical
|
||||
UTF-8 spelling, goes here. */
|
||||
cpp_hashnode ** GTY ((nested_ptr (union tree_node,
|
||||
"%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
|
||||
"%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
|
||||
length ("%h.paramc")))
|
||||
params;
|
||||
|
||||
/* Replacement tokens (ISO) or replacement text (traditional). See
|
||||
comment at top of cpptrad.c for how traditional function-like
|
||||
macros are encoded. */
|
||||
union cpp_macro_u
|
||||
{
|
||||
cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens;
|
||||
const unsigned char * GTY ((tag ("1"))) text;
|
||||
} GTY ((desc ("%1.traditional"))) exp;
|
||||
|
||||
/* Definition line number. */
|
||||
source_location line;
|
||||
|
||||
/* Number of tokens in expansion, or bytes for traditional macros. */
|
||||
unsigned int count;
|
||||
|
||||
/* Number of parameters. */
|
||||
unsigned short paramc;
|
||||
|
||||
/* If a function-like macro. */
|
||||
unsigned int fun_like : 1;
|
||||
|
||||
/* If a variadic macro. */
|
||||
unsigned int variadic : 1;
|
||||
|
||||
/* If macro defined in system header. */
|
||||
unsigned int syshdr : 1;
|
||||
|
||||
/* Nonzero if it has been expanded or had its existence tested. */
|
||||
unsigned int used : 1;
|
||||
|
||||
/* Indicate which field of 'exp' is in use. */
|
||||
unsigned int traditional : 1;
|
||||
|
||||
/* Indicate whether the tokens include extra CPP_PASTE tokens at the
|
||||
end to track invalid redefinitions with consecutive CPP_PASTE
|
||||
tokens. */
|
||||
unsigned int extra_tokens : 1;
|
||||
};
|
||||
|
||||
/* The structure of a node in the hash table. The hash table has
|
||||
entries for all identifiers: either macros defined by #define
|
||||
commands (type NT_MACRO), assertions created with #assert
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue