> Index: gcc/testsuite/g++.dg/debug/dwarf2/localclass1.C > =================================================================== > --- gcc/testsuite/g++.dg/debug/dwarf2/localclass1.C (revision 192048) > +++ gcc/testsuite/g++.dg/debug/dwarf2/localclass1.C (working copy) > @@ -59,11 +59,11 @@ > // { dg-final { scan-assembler "foo\[^\n\r\]*DW_AT_name" } } > // { dg-final { scan-assembler "staticfn1\[^\n\r\]*DW_AT_name" } } > // { dg-final { scan-assembler "staticfn2\[^\n\r\]*DW_AT_name" } } > -// { dg-final { scan-assembler-not "staticfn3\[^\n\r\]*DW_AT_name" } } > -// { dg-final { scan-assembler-not "staticfn4\[^\n\r\]*DW_AT_name" } } > +// { dg-final { scan-assembler "staticfn3\[^\n\r\]*DW_AT_name" } } > +// { dg-final { scan-assembler "staticfn4\[^\n\r\]*DW_AT_name" } } > // { dg-final { scan-assembler-not "staticfn5\[^\n\r\]*DW_AT_name" } } > // { dg-final { scan-assembler-not "staticfn6\[^\n\r\]*DW_AT_name" } } > -// { dg-final { scan-assembler-not "method1\[^\n\r\]*DW_AT_name" } } > +// { dg-final { scan-assembler "method1\[^\n\r\]*DW_AT_name" } } > // { dg-final { scan-assembler "arg1\[^\n\r\]*DW_AT_name" } } > // { dg-final { scan-assembler "arg2\[^\n\r\]*DW_AT_name" } } > // { dg-final { scan-assembler "arg3\[^\n\r\]*DW_AT_name" } }
The fact that these two tests were specifically checking for the absence of staticfn3 and staticfn4 leads me to believe that the current behavior is deliberate. Jakub, that change was yours (it dates back to November 2008). Are you OK with Paul's change? It seems to me that there are cases where we just want to emit the class for the context info (like a namespace, which doesn't have to be complete everywhere). Is there a way to tell the debugger that this class declaration is incomplete and that it should look elsewhere for a full definition? -cary