From: jason Date: Thu, 11 Jun 2015 17:33:40 +0000 (+0000) Subject: * dwarf2out.c (prune_unused_types): Handle unused top-level limbo X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ff30c40f75966e0948909d1d7cc6cce42273d16d;p=thirdparty%2Fgcc.git * dwarf2out.c (prune_unused_types): Handle unused top-level limbo dies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224391 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 066d66916803..57900cebcc2b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-06-11 Jason Merrill + + * dwarf2out.c (prune_unused_types): Handle unused top-level limbo + dies. + 2015-06-11 Marek Polacek * match.pd ((x & y) ^ (x | y)): Don't check for single_use. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 8a36fe8db355..3a92b02560cd 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);