decl2.c (deferred_fns, [...]): Use VEC instead of VARRAY.
authorKazu Hirata <kazu@cs.umass.edu>
Thu, 5 May 2005 21:57:46 +0000 (21:57 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Thu, 5 May 2005 21:57:46 +0000 (21:57 +0000)
* decl2.c (deferred_fns, note_vague_linkage_fn,
cp_finish_file): Use VEC instead of VARRAY.

From-SVN: r99290

gcc/cp/ChangeLog
gcc/cp/decl2.c

index 478aa84..2f26864 100644 (file)
@@ -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
index 530ba39..91ef55c 100644 (file)
@@ -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.  */