This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: debug/8188: DW_AT_containing_type incorrectly emitted
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 10 Oct 2002 18:06:01 -0000
- Subject: Re: debug/8188: DW_AT_containing_type incorrectly emitted
- Reply-to: Daniel Jacobowitz <drow at mvista dot com>
The following reply was made to PR debug/8188; it has been noted by GNATS.
From: Daniel Jacobowitz <drow@mvista.com>
To: miwako.tokugawa@intel.com
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: debug/8188: DW_AT_containing_type incorrectly emitted
Date: Thu, 10 Oct 2002 14:02:51 -0400
On Thu, Oct 10, 2002 at 05:51:04PM -0000, miwako.tokugawa@intel.com wrote:
>
> >Number: 8188
> >Category: debug
> >Synopsis: DW_AT_containing_type incorrectly emitted
> >Confidential: no
> >Severity: critical
> >Priority: medium
> >Responsible: unassigned
> >State: open
> >Class: sw-bug
> >Submitter-Id: net
> >Arrival-Date: Thu Oct 10 10:56:01 PDT 2002
> >Closed-Date:
> >Last-Modified:
> >Originator: miwako.tokugawa@intel.com
> >Release: unknown-1.0
> >Organization:
> >Environment:
>
> >Description:
> It seems that g++ misuses DW_AT_containing_type. If you compile test.cpp (attached), we see this.
> <1><d5e>: Abbrev Number: 15 (DW_TAG_structure_type)
> DW_AT_sibling : <df0>
> DW_AT_name : B
> DW_AT_byte_size : 12
> DW_AT_decl_file : 1
> DW_AT_decl_line : 12
> DW_AT_containing_type: <cc4>
> Dwarf3 draft (draft7) section 5.12 describes this attribute as being attached DW_TAG_ptr_to_member_type, and it does not describe its use with a structure DIE.
>
> Furthermore, gdb seems to make use of this emission and this is not correct.
GDB uses it to find the virtual table associated with the current type.
It's used in two "custom" ways by GCC and GDB:
/* GNU extension: Record what type this method came from originally. */
/* GNU extension: Record what type our vtable lives in. */
Non-GDB readers will presumably ignore this information. Why do you
consider this a bug?
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer