From 35ea1c5ac88fc328743f3cd370bfe1d834fc51be Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Thu, 22 Jul 2010 16:25:17 +0000 Subject: re PR debug/45024 (wrong nesting for inner template class) Fix PR debug/45024 gcc/ChangeLog: PR debug/45024 * dwarf2out.c (scope_die_for): Don't fall back to the compilation unit DIE if we can find the scope DIE. gcc/testsuite/ChangeLog: PR debug/45024 * g++.dg/debug/dwarf2/nested-2.C: New test case. From-SVN: r162420 --- gcc/dwarf2out.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gcc/dwarf2out.c') diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index ce35c91..183bbd3 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -17585,9 +17585,13 @@ scope_die_for (tree t, dw_die_ref context_die) { gcc_assert (debug_info_level <= DINFO_LEVEL_TERSE || TREE_ASM_WRITTEN (containing_scope)); + /*We are not in the middle of emitting the type + CONTAINING_SCOPE. Let's see if it's emitted already. */ + scope_die = lookup_type_die (containing_scope); /* If none of the current dies are suitable, we get file scope. */ - scope_die = comp_unit_die; + if (scope_die == NULL) + scope_die = comp_unit_die; } else scope_die = lookup_type_die (containing_scope); -- cgit v1.1