aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2010-12-03 11:56:53 -0500
committerJason Merrill <jason@gcc.gnu.org>2010-12-03 11:56:53 -0500
commit9c60a01a9c238e216af7cd952c7b785842b6a6a4 (patch)
tree41053c3354b7bd808d0be7b86cf81ce684cf82d7 /gcc/dwarf2out.c
parent3ee353e956beac249a08337099ec885ae28bba04 (diff)
downloadgcc-9c60a01a9c238e216af7cd952c7b785842b6a6a4.zip
gcc-9c60a01a9c238e216af7cd952c7b785842b6a6a4.tar.gz
gcc-9c60a01a9c238e216af7cd952c7b785842b6a6a4.tar.bz2
re PR debug/46123 (ICE: in output_aranges, at dwarf2out.c:11531 with -feliminate-dwarf2-dups -g)
PR debug/46123 * dwarf2out.c (gen_tagged_type_die): Don't put local types in a declaration DIE. From-SVN: r167436
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 75faec5..acb70ed 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -20212,6 +20212,10 @@ gen_tagged_type_die (tree type,
out yet, use a NULL context for now; it will be fixed up in
decls_for_scope. */
context_die = lookup_decl_die (TYPE_CONTEXT (type));
+ /* A declaration DIE doesn't count; nested types need to go in the
+ specification. */
+ if (context_die && is_declaration_die (context_die))
+ context_die = NULL;
need_pop = 0;
}
else