]> gcc.gnu.org Git - gcc.git/commitdiff
class.c (dfs_modify_vtables_queue_p): Remove.
authorMark Mitchell <mitchell@dumbledore.codesourcery.com>
Tue, 11 Jan 2000 06:50:19 +0000 (06:50 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Tue, 11 Jan 2000 06:50:19 +0000 (06:50 +0000)
* class.c (dfs_modify_vtables_queue_p): Remove.
(modify_all_vtables): Use dfs_unmarked_real_bases_queue_p
and dfs_marked_real_bases_queue_p instead of
dfs_modify_vtables_queue_p.

From-SVN: r31319

gcc/cp/ChangeLog
gcc/cp/class.c

index 00078c6fc56421023b56f3d8ba2422dfef217839..310ca2f5fd9ad4a179d6d4c27947b8653641186c 100644 (file)
@@ -1,5 +1,10 @@
 2000-01-10  Mark Mitchell  <mitchell@dumbledore.codesourcery.com>
 
+       * class.c (dfs_modify_vtables_queue_p): Remove.
+       (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p
+       and dfs_marked_real_bases_queue_p instead of
+       dfs_modify_vtables_queue_p.
+
        * class.c (build_vbase_path): Simplify.
        (dfs_propagate_binfo_offsets): New function.
        (propagate_binfo_offsets): Use it.
index ad504d007f8b730d484f488ff03b6def5eb9876d..023cf1a27c4e7377ea1073ff1217569d3deb4d5d 100644 (file)
@@ -103,7 +103,6 @@ static void check_for_override PROTO((tree, tree));
 static tree get_class_offset_1 PROTO((tree, tree, tree, tree, tree));
 static tree get_class_offset PROTO((tree, tree, tree, tree));
 static void modify_one_vtable PROTO((tree, tree, tree));
-static tree dfs_modify_vtables_queue_p PROTO((tree, void *));
 static tree dfs_modify_vtables PROTO((tree, void *));
 static void modify_all_vtables PROTO((tree, tree));
 static void determine_primary_base PROTO((tree, int *));
@@ -2462,23 +2461,6 @@ modify_one_vtable (binfo, t, fndecl)
 
 /* Called from modify_all_vtables via dfs_walk.  */
 
-static tree
-dfs_modify_vtables_queue_p (binfo, data)
-     tree binfo;
-     void *data;
-{
-  tree list = (tree) data;
-
-  if (TREE_VIA_VIRTUAL (binfo))
-    binfo = BINFO_FOR_VBASE (BINFO_TYPE (binfo), TREE_PURPOSE (list));
-
-  return (TREE_ADDRESSABLE (list) 
-         ? markedp (binfo, NULL) 
-         : unmarkedp (binfo, NULL));
-}
-
-/* Called from modify_all_vtables via dfs_walk.  */
-
 static tree
 dfs_modify_vtables (binfo, data)
      tree binfo;
@@ -2510,13 +2492,9 @@ modify_all_vtables (t, fndecl)
   tree list;
 
   list = build_tree_list (t, fndecl);
-  dfs_walk (TYPE_BINFO (t), dfs_modify_vtables, dfs_modify_vtables_queue_p,
-           list);
-  /* Let dfs_modify_vtables_queue_p know to check that the mark is
-     present before queueing a base, rather than checking to see that
-     it is *not* present.  */
-  TREE_ADDRESSABLE (list) = 1;
-  dfs_walk (TYPE_BINFO (t), dfs_unmark, dfs_modify_vtables_queue_p, list);
+  dfs_walk (TYPE_BINFO (t), dfs_modify_vtables, 
+           dfs_unmarked_real_bases_queue_p, list);
+  dfs_walk (TYPE_BINFO (t), dfs_unmark, dfs_marked_real_bases_queue_p, t);
 }
 
 /* Fixup all the delta entries in this one vtable that need updating.  */
This page took 0.086619 seconds and 5 git commands to generate.