debug/8188: DW_AT_containing_type incorrectly emitted

Daniel Jacobowitz drow@mvista.com
Thu Oct 10 11:06:00 GMT 2002


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



More information about the Gcc-prs mailing list