aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2015-06-11 13:33:40 -0400
committerJason Merrill <jason@gcc.gnu.org>2015-06-11 13:33:40 -0400
commit1eb231ed3ffab639276f638d0687f5299281117a (patch)
treea2668c86c2d0198336469cc73e884e947d361830
parent2d6f2dce793e917f00a366ed0d1c5d1545f5c50d (diff)
downloadgcc-1eb231ed3ffab639276f638d0687f5299281117a.zip
gcc-1eb231ed3ffab639276f638d0687f5299281117a.tar.gz
gcc-1eb231ed3ffab639276f638d0687f5299281117a.tar.bz2
dwarf2out.c (prune_unused_types): Handle unused top-level limbo dies.
* dwarf2out.c (prune_unused_types): Handle unused top-level limbo dies. From-SVN: r224391
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c13
2 files changed, 16 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 066d669..57900ce 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-06-11 Jason Merrill <jason@redhat.com>
+
+ * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
+ dies.
+
2015-06-11 Marek Polacek <polacek@redhat.com>
* match.pd ((x & y) ^ (x | y)): Don't check for single_use.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 8a36fe8..3a92b02 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -23789,8 +23789,17 @@ prune_unused_types (void)
if (skeleton_debug_str_hash)
skeleton_debug_str_hash->empty ();
prune_unused_types_prune (comp_unit_die ());
- for (node = limbo_die_list; node; node = node->next)
- prune_unused_types_prune (node->die);
+ for (limbo_die_node **pnode = &limbo_die_list; *pnode; )
+ {
+ node = *pnode;
+ if (!node->die->die_mark)
+ *pnode = node->next;
+ else
+ {
+ prune_unused_types_prune (node->die);
+ pnode = &node->next;
+ }
+ }
for (ctnode = comdat_type_list; ctnode; ctnode = ctnode->next)
prune_unused_types_prune (ctnode->root_die);