OSDN Git Service

* pt.c (for_each_template_parm): Do not check for duplicates.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Jan 2004 13:18:13 +0000 (13:18 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Jan 2004 13:18:13 +0000 (13:18 +0000)
(for_each_template_parm): Use walk_tree duplicate checking code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75718 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/pt.c

index 2d100c8..d721909 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-12  Jan Hubicka  <jh@suse.cz>
+
+       * pt.c (for_each_template_parm): Do not check for duplicates.
+       (for_each_template_parm): Use walk_tree duplicate checking code.
+
 2004-01-11  Ian Lance Taylor  <ian@wasabisystems.com>
 
        PR c++/3478
index 040476c..473b6fe 100644 (file)
@@ -4511,17 +4511,6 @@ for_each_template_parm_r (tree* tp, int* walk_subtrees, void* d)
   struct pair_fn_data *pfd = (struct pair_fn_data *) d;
   tree_fn_t fn = pfd->fn;
   void *data = pfd->data;
-  void **slot;
-
-  /* If we have already visited this tree, there's no need to walk
-     subtrees.  Otherwise, add it to the visited table.  */
-  slot = htab_find_slot (pfd->visited, *tp, INSERT);
-  if (*slot)
-    {
-      *walk_subtrees = 0;
-      return NULL_TREE;
-    }
-  *slot = *tp;
 
   if (TYPE_P (t)
       && for_each_template_parm (TYPE_CONTEXT (t), fn, data, pfd->visited))
@@ -4714,7 +4703,7 @@ for_each_template_parm (tree t, tree_fn_t fn, void* data, htab_t visited)
   result = walk_tree (&t, 
                      for_each_template_parm_r, 
                      &pfd,
-                     NULL) != NULL_TREE;
+                     pfd.visited) != NULL_TREE;
 
   /* Clean up.  */
   if (!visited)