This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Post-hashtable cleanup
- To: gcc-patches at gcc dot gnu dot org
- Subject: Post-hashtable cleanup
- From: Neil Booth <neil at daikokuya dot demon dot co dot uk>
- Date: Tue, 22 May 2001 08:20:39 +0100
This was approved by Mark a couple of days ago, but I've not applied
it yet because of all the x86 regressions that have appeared recently.
However, I'm now pretty sure it's harmless, so I'm going to apply it.
Neil.
* c-lex.c (c_lex): Just cast cpp's hashnode to gcc's one.
* stringpool.c: (IS_FE_IDENT, make_identifier): Delete.
(maybe_get_identifier): Update.
* tree.h (make_identifier): Delete.
Index: c-lex.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-lex.c,v
retrieving revision 1.138
diff -u -p -r1.138 c-lex.c
--- c-lex.c 2001/05/20 06:26:32 1.138
+++ c-lex.c 2001/05/22 07:17:23
@@ -997,12 +997,7 @@ c_lex (value)
goto retry;
case CPP_NAME:
- {
- tree node = HT_IDENT_TO_GCC_IDENT (HT_NODE (tok.val.node));
- if (TREE_CODE (node) != IDENTIFIER_NODE)
- make_identifier (node);
- *value = node;
- }
+ *value = HT_IDENT_TO_GCC_IDENT (HT_NODE (tok.val.node));
break;
case CPP_INT:
Index: stringpool.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/stringpool.c,v
retrieving revision 1.7
diff -u -p -r1.7 stringpool.c
--- stringpool.c 2001/05/20 08:13:32 1.7
+++ stringpool.c 2001/05/22 07:17:24
@@ -35,8 +35,6 @@ Software Foundation, 59 Temple Place - S
#include "flags.h"
#include "toplev.h"
-#define IS_FE_IDENT(NODE) (TREE_CODE (NODE) == IDENTIFIER_NODE)
-
/* The "" allocated string. */
const char empty_string[] = "";
@@ -99,23 +97,6 @@ ggc_alloc_string (contents, length)
return obstack_finish (&string_stack);
}
-/* NODE is an identifier known to the preprocessor. Make it known to
- the front ends as well. */
-
-void
-make_identifier (node)
- tree node;
-{
- /* If this identifier is longer than the clash-warning length,
- do a brute force search of the entire table for clashes. */
- if (warn_id_clash && do_identifier_warnings
- && IDENTIFIER_LENGTH (node) >= id_clash_len)
- ht_forall (ident_hash, (ht_cb) scan_for_clashes,
- IDENTIFIER_POINTER (node));
-
- TREE_SET_CODE (node, IDENTIFIER_NODE);
-}
-
/* Return an IDENTIFIER_NODE whose name is TEXT (a null-terminated string).
If an identifier with that name has previously been referred to,
the same node is returned this time. */
@@ -141,17 +122,11 @@ maybe_get_identifier (text)
const char *text;
{
hashnode ht_node;
- tree node;
- size_t length = strlen (text);
ht_node = ht_lookup (ident_hash, (const unsigned char *) text,
- length, HT_NO_INSERT);
+ strlen (text), HT_NO_INSERT);
if (ht_node)
- {
- node = HT_IDENT_TO_GCC_IDENT (ht_node);
- if (IS_FE_IDENT (node))
- return node;
- }
+ return HT_IDENT_TO_GCC_IDENT (ht_node);
return NULL_TREE;
}
@@ -167,8 +142,7 @@ scan_for_clashes (pfile, h, text)
{
tree node = HT_IDENT_TO_GCC_IDENT (h);
- if (IS_FE_IDENT (node)
- && IDENTIFIER_LENGTH (node) >= id_clash_len
+ if (IDENTIFIER_LENGTH (node) >= id_clash_len
&& !memcmp (IDENTIFIER_POINTER (node), text, id_clash_len))
{
warning ("\"%s\" and \"%s\" identical in first %d characters",
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.240
diff -u -p -r1.240 tree.h
--- tree.h 2001/05/22 03:03:26 1.240
+++ tree.h 2001/05/22 07:17:36
@@ -1958,10 +1958,6 @@ extern tree make_tree_vec PARAMS ((int)
extern tree get_identifier PARAMS ((const char *));
-/* NODE is an identifier known to the preprocessor. Make it known to
- the front ends as well. */
-extern void make_identifier PARAMS ((tree node));
-
/* If an identifier with the name TEXT (a null-terminated string) has
previously been referred to, return that node; otherwise return
NULL_TREE. */