On Jul 16, 2006, at 5:19 PM, Andrew Pinski wrote:
And here is a reduced testcase:
struct basic_ios
{
virtual ~basic_ios() { }
};
class istrstream
: virtual public basic_ios
{
virtual ~istrstream();
};
istrstream::~istrstream() { }
Debugging shows this was definitely caused by the stabs changes:
Breakpoint 5, dbxout_begin_prologue (lineno=7, filename=0xbffffb4b
"t.cc") at ../../gcc/dbxout.c:1246
1246 if (use_gnu_debug_info_extensions
(gdb) p scope_labelno
$2 = 1
(gdb) continue
Continuing.
Breakpoint 5, dbxout_begin_prologue (lineno=10, filename=0xbffffb4b
"t.cc") at ../../gcc/dbxout.c:1246
1246 if (use_gnu_debug_info_extensions
(gdb) p scope_labelno
$3 = 1
Here we have the same scope_labelno. The first dbxout_begin_prologue
comes from calling rs6000_output_mi_thunk. The normal way
scope_labelno gets incremented is via the
call to debug_hooks->function_decl in rest_of_handle_final which is
not done for thunks.
I don't know if we should call debug_hooks->function_decl for thunks
or not.
Thanks,
Andrew Pinski