public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jason Merrill <jason@redhat.com>
To: gcc-patches List <gcc-patches@gcc.gnu.org>
Subject: DWARF PATCH to fix g++.dg/debug/localclass1.C ICE
Date: Thu, 11 Jun 2015 17:50:00 -0000	[thread overview]
Message-ID: <5579C66B.5070904@redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 291 bytes --]

I was seeing crashes on localclass1.C for some testruns.  The issue 
turned out to be that we are doing better at pruning unnecessary debug 
info, so we end up with 'B' on limbo_die_list and never referred to. 
Let's deal with that situation.

Tested x86_64-pc-linux-gnu, applying to trunk.

[-- Attachment #2: local-dwarf.patch --]
[-- Type: text/x-patch, Size: 960 bytes --]

commit 9bff8274719d394395941353e6d98694613b9643
Author: Jason Merrill <jason@redhat.com>
Date:   Thu Jun 11 13:09:13 2015 -0400

    	* dwarf2out.c (prune_unused_types): Handle unused top-level limbo
    	dies.

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);
 

                 reply	other threads:[~2015-06-11 17:33 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5579C66B.5070904@redhat.com \
    --to=jason@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).