diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 2002-12-16 18:23:00 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2002-12-16 18:23:00 +0000 |
commit | 4977bab6ed59f01c73f9c8b9e92298706df9b6d5 (patch) | |
tree | c259697c448b0c6f548f153c48c46a8d7a75970f /gcc/cpplib.h | |
parent | b51dc045004ee7eb8d2bf4358ddf22a6cc6c1d00 (diff) | |
download | gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.zip gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.tar.gz gcc-4977bab6ed59f01c73f9c8b9e92298706df9b6d5.tar.bz2 |
Merge basic-improvements-branch to trunk
From-SVN: r60174
Diffstat (limited to 'gcc/cpplib.h')
-rw-r--r-- | gcc/cpplib.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/cpplib.h b/gcc/cpplib.h index 7b3a54a..fe1f89c 100644 --- a/gcc/cpplib.h +++ b/gcc/cpplib.h @@ -443,6 +443,7 @@ extern const char *progname; #define NODE_DIAGNOSTIC (1 << 3) /* Possible diagnostic when lexed. */ #define NODE_WARN (1 << 4) /* Warn if redefined or undefined. */ #define NODE_DISABLED (1 << 5) /* A disabled macro. */ +#define NODE_MACRO_ARG (1 << 6) /* Used during #define processing. */ /* Different flavors of hash node. */ enum node_type @@ -477,18 +478,20 @@ enum builtin_type struct cpp_hashnode { struct ht_identifier ident; - unsigned short arg_index; /* Macro argument index. */ - unsigned char directive_index; /* Index into directive table. */ + unsigned int is_directive : 1; + unsigned int directive_index : 7; /* If is_directive, + then index into directive table. + Otherwise, a NODE_OPERATOR. */ unsigned char rid_code; /* Rid code - for front ends. */ ENUM_BITFIELD(node_type) type : 8; /* CPP node type. */ unsigned char flags; /* CPP flags. */ - union + union _cpp_hashnode_value { cpp_macro *macro; /* If a macro. */ struct answer *answers; /* Answers to an assertion. */ - enum cpp_ttype operator; /* Code for a named operator. */ enum builtin_type builtin; /* Code for a builtin macro. */ + unsigned short arg_index; /* Macro argument index. */ } value; }; |