summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-05 21:57:46 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-05 21:57:46 +0000
commit3c8969b1d7147ba88176c304e6094a170cf93aa4 (patch)
tree4bd768fd63ed2e6d94776cacd691b82da34a0acc
parenteebe5e9c2e5aaa999320150f33d86832c20709bb (diff)
downloadppe42-gcc-3c8969b1d7147ba88176c304e6094a170cf93aa4.tar.gz
ppe42-gcc-3c8969b1d7147ba88176c304e6094a170cf93aa4.zip
* decl2.c (deferred_fns, note_vague_linkage_fn,
cp_finish_file): Use VEC instead of VARRAY. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99290 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl2.c17
2 files changed, 10 insertions, 12 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 478aa84daa4..2f268649fdc 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
+
+ * decl2.c (deferred_fns, note_vague_linkage_fn,
+ cp_finish_file): Use VEC instead of VARRAY.
+
2005-05-05 Mark Mitchell <mark@codesourcery.com>
PR c++/21352
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 530ba391f57..91ef55c4046 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -92,9 +92,7 @@ static GTY(()) varray_type pending_statics;
/* A list of functions which were declared inline, but which we
may need to emit outline anyway. */
-static GTY(()) varray_type deferred_fns;
-#define deferred_fns_used \
- (deferred_fns ? deferred_fns->elements_used : 0)
+static GTY(()) VEC(tree,gc) *deferred_fns;
/* Flag used when debugging spew.c */
@@ -732,9 +730,7 @@ note_vague_linkage_fn (tree decl)
{
DECL_DEFERRED_FN (decl) = 1;
DECL_DEFER_OUTPUT (decl) = 1;
- if (!deferred_fns)
- VARRAY_TREE_INIT (deferred_fns, 32, "deferred_fns");
- VARRAY_PUSH_TREE (deferred_fns, decl);
+ VEC_safe_push (tree, gc, deferred_fns, decl);
}
}
@@ -2747,6 +2743,7 @@ cp_finish_file (void)
location_t locus;
unsigned ssdf_count = 0;
int retries = 0;
+ tree decl;
locus = input_location;
at_eof = 1;
@@ -2910,10 +2907,8 @@ cp_finish_file (void)
/* Go through the set of inline functions whose bodies have not
been emitted yet. If out-of-line copies of these functions
are required, emit them. */
- for (i = 0; i < deferred_fns_used; ++i)
+ for (i = 0; VEC_iterate (tree, deferred_fns, i, decl); ++i)
{
- tree decl = VARRAY_TREE (deferred_fns, i);
-
/* Does it need synthesizing? */
if (DECL_ARTIFICIAL (decl) && ! DECL_INITIAL (decl)
&& (! DECL_REALLY_EXTERN (decl) || DECL_INLINE (decl)))
@@ -2998,10 +2993,8 @@ cp_finish_file (void)
while (reconsider);
/* All used inline functions must have a definition at this point. */
- for (i = 0; i < deferred_fns_used; ++i)
+ for (i = 0; VEC_iterate (tree, deferred_fns, i, decl); ++i)
{
- tree decl = VARRAY_TREE (deferred_fns, i);
-
if (/* Check online inline functions that were actually used. */
TREE_USED (decl) && DECL_DECLARED_INLINE_P (decl)
/* But not defined. */
OpenPOWER on IntegriCloud