This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] cp/*.[ch]: VECify local_names.
- From: Kazu Hirata <kazu at cs dot umass dot edu>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 02 May 2005 17:12:28 -0400 (EDT)
- Subject: [patch] cp/*.[ch]: VECify local_names.
Hi,
Attached is a patch to VECify local_names.
Tested on i686-pc-linux-gnu. I am not aware of any big pending
project on the C++ front end, but I will wait for 24 hours just in
case before I check in this patch.
Kazu Hirata
2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
* cp-tree.h (language_function): Change the type of
x_local_names to VEC.
* decl.c (push_local_name): Adjust uses of local_names.
Index: cp/cp-tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/cp-tree.h,v
retrieving revision 1.1131
diff -u -d -p -r1.1131 cp-tree.h
--- cp/cp-tree.h 25 Apr 2005 19:03:37 -0000 1.1131
+++ cp/cp-tree.h 1 May 2005 01:45:49 -0000
@@ -754,7 +754,7 @@ struct language_function GTY(())
struct named_label_use_list *x_named_label_uses;
struct named_label_list *x_named_labels;
struct cp_binding_level *bindings;
- varray_type x_local_names;
+ VEC(tree,gc) *x_local_names;
};
/* The current C++-specific per-function global variables. */
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v
retrieving revision 1.1390
diff -u -d -p -r1.1390 decl.c
--- cp/decl.c 25 Apr 2005 19:35:17 -0000 1.1390
+++ cp/decl.c 1 May 2005 01:45:51 -0000
@@ -832,15 +832,13 @@ push_local_name (tree decl)
tree t, name;
timevar_push (TV_NAME_LOOKUP);
- if (!local_names)
- VARRAY_TREE_INIT (local_names, 8, "local_names");
name = DECL_NAME (decl);
- nelts = VARRAY_ACTIVE_SIZE (local_names);
+ nelts = VEC_length (tree, local_names);
for (i = 0; i < nelts; i++)
{
- t = VARRAY_TREE (local_names, i);
+ t = VEC_index (tree, local_names, i);
if (DECL_NAME (t) == name)
{
if (!DECL_LANG_SPECIFIC (decl))
@@ -851,13 +849,13 @@ push_local_name (tree decl)
else
DECL_DISCRIMINATOR (decl) = 1;
- VARRAY_TREE (local_names, i) = decl;
+ VEC_replace (tree, local_names, i, decl);
timevar_pop (TV_NAME_LOOKUP);
return;
}
}
- VARRAY_PUSH_TREE (local_names, decl);
+ VEC_safe_push (tree, gc, local_names, decl);
timevar_pop (TV_NAME_LOOKUP);
}