dwarf2out.c (verify_marks_clear): New.
authorGeoffrey Keating <geoffk@apple.com>
Tue, 25 Apr 2006 05:56:36 +0000 (05:56 +0000)
committerGeoffrey Keating <geoffk@gcc.gnu.org>
Tue, 25 Apr 2006 05:56:36 +0000 (05:56 +0000)
* dwarf2out.c (verify_marks_clear): New.
(prune_unused_types): Call verify_marks_clear initially, not
prune_unmark_dies.

From-SVN: r113241

gcc/ChangeLog
gcc/dwarf2out.c

index 9f19a12..fb0e9d3 100644 (file)
@@ -1,3 +1,9 @@
+2006-04-24  Geoffrey Keating  <geoffk@apple.com>
+
+       * dwarf2out.c (verify_marks_clear): New.
+       (prune_unused_types): Call verify_marks_clear initially, not
+       prune_unmark_dies.
+
 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
 
        * rtl.def (SS_ASHIFT, SS_NEG): New codes.
index 6c01596..39a8c5c 100644 (file)
@@ -13830,7 +13830,18 @@ output_indirect_string (void **h, void *v ATTRIBUTE_UNUSED)
   return 1;
 }
 
+#if ENABLE_ASSERT_CHECKING
+/* Verify that all marks are clear.  */
 
+static void
+verify_marks_clear (dw_die_ref die)
+{
+  dw_die_ref c;
+  
+  gcc_assert (! die->die_mark);
+  FOR_EACH_CHILD (die, c, verify_marks_clear (c));
+}
+#endif /* ENABLE_ASSERT_CHECKING */
 
 /* Clear the marks for a die and its children.
    Be cool if the mark isn't set.  */
@@ -13845,7 +13856,6 @@ prune_unmark_dies (dw_die_ref die)
   FOR_EACH_CHILD (die, c, prune_unmark_dies (c));
 }
 
-
 /* Given DIE that we're marking as used, find any other dies
    it references as attributes and mark them as used.  */
 
@@ -14046,10 +14056,12 @@ prune_unused_types (void)
   unsigned int i;
   limbo_die_node *node;
 
-  /* Clear all the marks.  */
-  prune_unmark_dies (comp_unit_die);
+#if ENABLE_ASSERT_CHECKING
+  /* All the marks should already be clear.  */
+  verify_marks_clear (comp_unit_die);
   for (node = limbo_die_list; node; node = node->next)
-    prune_unmark_dies (node->die);
+    verify_marks_clear (node->die);
+#endif /* ENABLE_ASSERT_CHECKING */
 
   /* Set the mark on nodes that are actually used.  */
   prune_unused_types_walk (comp_unit_die);