From 125121e2fb613d05135f60b04c407360908ca71b Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Thu, 5 May 2005 21:57:46 +0000 Subject: [PATCH] decl2.c (deferred_fns, [...]): Use VEC instead of VARRAY. * decl2.c (deferred_fns, note_vague_linkage_fn, cp_finish_file): Use VEC instead of VARRAY. From-SVN: r99290 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl2.c | 17 +++++------------ 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 + + * decl2.c (deferred_fns, note_vague_linkage_fn, + cp_finish_file): Use VEC instead of VARRAY. + 2005-05-05 Mark Mitchell 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. */ -- 2.30.2