diff options
author | Dodji Seketeli <dodji@redhat.com> | 2010-07-22 16:25:17 +0000 |
---|---|---|
committer | Dodji Seketeli <dodji@gcc.gnu.org> | 2010-07-22 18:25:17 +0200 |
commit | 35ea1c5ac88fc328743f3cd370bfe1d834fc51be (patch) | |
tree | 4aceab85a0b196e0ed32687ec59376296d1556a1 /gcc/dwarf2out.c | |
parent | ac0ab4f718b5c85c999dc3cdf1745bca627e3c69 (diff) | |
download | gcc-35ea1c5ac88fc328743f3cd370bfe1d834fc51be.zip gcc-35ea1c5ac88fc328743f3cd370bfe1d834fc51be.tar.gz gcc-35ea1c5ac88fc328743f3cd370bfe1d834fc51be.tar.bz2 |
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
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 6 |
1 files changed, 5 insertions, 1 deletions
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); |