aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Booth <neil@gcc.gnu.org>2001-05-16 21:50:27 +0000
committerNeil Booth <neil@gcc.gnu.org>2001-05-16 21:50:27 +0000
commit608477bd7b7fd7bf1877bcd990d9d3579b3d9ca1 (patch)
tree1e81834d295180b9ec450f3bc267f67e3be65149
parentc25d4f6a6bda616dec75fbc1c2cddddfa8f2ff81 (diff)
downloadgcc-608477bd7b7fd7bf1877bcd990d9d3579b3d9ca1.zip
gcc-608477bd7b7fd7bf1877bcd990d9d3579b3d9ca1.tar.gz
gcc-608477bd7b7fd7bf1877bcd990d9d3579b3d9ca1.tar.bz2
cppexp.c (lex): Use NODE_NAME and NODE_LEN.
* cppexp.c (lex): Use NODE_NAME and NODE_LEN. * cpphash.c (_cpp_lookup_with_hash): Similarly. * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len, cpp_spell_token, cpp_output_token): Similarly. * cpplib.c (lex_macro_node, do_undef, do_pragma, do_pragma_poison, parse_assertion, do_assert): Similarly. * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p, save_parameter, _cpp_create_definition, check_trad_stringification, cpp_macro_definition): Similarly. * cppmain.c (cb_define, cb_undef, dump_macro): Similarly. * c-lex.c (cb_undef, c_lex): Similarly. * fix-header.c (recognized_function): Similarly. * cpplib.h (NODE_LEN, NODE_NAME): New. (cpp_hashnode): Rename length len. From-SVN: r42172
-rw-r--r--gcc/cpplib.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index dc4c763..6100633 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -37,7 +37,7 @@ typedef struct cpp_buffer cpp_buffer;
typedef struct cpp_options cpp_options;
typedef struct cpp_token cpp_token;
typedef struct cpp_string cpp_string;
-typedef struct cpp_hashnode cpp_hashnode;
+typedef struct c_common_identifier cpp_hashnode;
typedef struct cpp_macro cpp_macro;
typedef struct cpp_lexer_pos cpp_lexer_pos;
typedef struct cpp_lookahead cpp_lookahead;
@@ -177,7 +177,7 @@ struct cpp_token
union
{
- struct cpp_hashnode *node; /* An identifier. */
+ cpp_hashnode *node; /* An identifier. */
struct cpp_string str; /* A string, or number. */
unsigned int arg_no; /* Argument no. for a CPP_MACRO_ARG. */
unsigned char c; /* Character represented by CPP_OTHER. */
@@ -466,21 +466,21 @@ enum builtin_type
BT_STDC /* `__STDC__' */
};
-/* There is a slot in the hashnode for use by front ends when integrated
- with cpplib. It holds a tree (see tree.h) but we mustn't drag that
- header into every user of cpplib.h. cpplib does not do anything with
- this slot except clear it when a new node is created. */
-union tree_node;
+#include "c-rid.h"
-struct cpp_hashnode
+#define C_RID_CODE(id) (((struct c_common_identifier *) (id))->rid_code)
+
+/* The common part of an identifier node shared amongst all 3 C front
+ ends. Also used to store CPP identifiers, which are a superset of
+ identifiers in the grammatical sense. */
+struct c_common_identifier
{
- const unsigned char *name; /* Null-terminated name. */
- unsigned int hash; /* Cached hash value. */
- unsigned short length; /* Length of name excluding null. */
+ struct tree_identifier ident; /* See tree-core.h. */
unsigned short arg_index; /* Macro argument index. */
unsigned char directive_index; /* Index into directive table. */
- ENUM_BITFIELD(node_type) type : 8; /* Node type. */
- unsigned char flags; /* Node flags. */
+ ENUM_BITFIELD(rid) rid_code : 8; /* Rid code - for front ends. */
+ ENUM_BITFIELD(node_type) type : 8; /* CPP node type. */
+ unsigned char flags; /* CPP flags. */
union
{