]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
function.h (types_used_by_cur_var_decl): Change type to a VEC.
authorNathan Froyd <froydnj@codesourcery.com>
Fri, 18 Jun 2010 15:51:37 +0000 (15:51 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Fri, 18 Jun 2010 15:51:37 +0000 (15:51 +0000)
gcc/
* function.h (types_used_by_cur_var_decl): Change type to a VEC.
* function.c (types_used_by_cur_var_decl): Likewise.
(used_types_insert): Adjust for new type of
types_used_by_cur_var_decl.

gcc/c-family/
* c-common.c (record_types_used_by_current_var_decl): Adjust for
new type of types_used_by_cur_var_decl.

From-SVN: r161001

gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/function.c
gcc/function.h

index ef71ff7d304c31fe66103b573f34e53e29808531..0e723ef02ac0594267df2b3df980510d8011e4cf 100644 (file)
@@ -1,3 +1,10 @@
+2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * function.h (types_used_by_cur_var_decl): Change type to a VEC.
+       * function.c (types_used_by_cur_var_decl): Likewise.
+       (used_types_insert): Adjust for new type of
+       types_used_by_cur_var_decl.
+
 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
 
        * tree.h (record_layout_info): Change type of pending_statics field
index fcf46b832cb47cee96f6491456c3584494c9dd2e..c13367e9a6a8744c67be56d6ac7ad1ad858d40c9 100644 (file)
@@ -1,3 +1,8 @@
+2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * c-common.c (record_types_used_by_current_var_decl): Adjust for
+       new type of types_used_by_cur_var_decl.
+
 2010-06-17  Joern Rennecke  <joern.rennecke@embecosm.com>
 
        PR bootstrap/44512
index 63cd7284a593cd1c222adcdfdb302ddaf27f4ca2..4bafd1cfad5f822ece8705a765a85e022bd7f6c2 100644 (file)
@@ -9191,17 +9191,10 @@ record_types_used_by_current_var_decl (tree decl)
 {
   gcc_assert (decl && DECL_P (decl) && TREE_STATIC (decl));
 
-  if (types_used_by_cur_var_decl)
+  while (!VEC_empty (tree, types_used_by_cur_var_decl))
     {
-      tree node;
-      for (node = types_used_by_cur_var_decl;
-          node;
-          node = TREE_CHAIN (node))
-      {
-       tree type = TREE_PURPOSE (node);
-       types_used_by_var_decl_insert (type, decl);
-      }
-      types_used_by_cur_var_decl = NULL;
+      tree type = VEC_pop (tree, types_used_by_cur_var_decl);
+      types_used_by_var_decl_insert (type, decl);
     }
 }
 
index c5b80b0e15358399f65a68369409b2eb13d48c6c..5c31955380ae4945936b8698b55853922ad7b686 100644 (file)
@@ -132,7 +132,7 @@ static GTY((if_marked ("ggc_marked_p"), param_is (struct rtx_def)))
 \f
 
 htab_t types_used_by_vars_hash = NULL;
-tree types_used_by_cur_var_decl = NULL;
+VEC(tree,gc) *types_used_by_cur_var_decl;
 
 /* Forward declarations.  */
 
@@ -5562,9 +5562,7 @@ used_types_insert (tree t)
        /* So this might be a type referenced by a global variable.
           Record that type so that we can later decide to emit its debug
           information.  */
-       types_used_by_cur_var_decl =
-         tree_cons (t, NULL, types_used_by_cur_var_decl);
-
+        VEC_safe_push (tree, gc, types_used_by_cur_var_decl, t);
     }
 }
 
index deb170dc38cfea23fcc303477c925140413cff1c..617034872ccd1e7d42a992a1f3a2d3287f39bc4e 100644 (file)
@@ -645,9 +645,9 @@ hashval_t types_used_by_vars_do_hash (const void*);
 int types_used_by_vars_eq (const void *, const void *);
 void types_used_by_var_decl_insert (tree type, tree var_decl);
 
-/* During parsing of a global variable, this linked list points to
-   the list of types referenced by the global variable.  */
-extern GTY(()) tree types_used_by_cur_var_decl;
+/* During parsing of a global variable, this vector contains the types
+   referenced by the global variable.  */
+extern GTY(()) VEC(tree,gc) *types_used_by_cur_var_decl;
 
 
 /* cfun shouldn't be set directly; use one of these functions instead.  */