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

Reply via email to