From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5188 invoked by alias); 10 Oct 2002 18:06:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 5154 invoked by uid 71); 10 Oct 2002 18:06:01 -0000 Date: Thu, 10 Oct 2002 11:06:00 -0000 Message-ID: <20021010180601.5151.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Daniel Jacobowitz Subject: Re: debug/8188: DW_AT_containing_type incorrectly emitted Reply-To: Daniel Jacobowitz X-SW-Source: 2002-10/txt/msg00392.txt.bz2 List-Id: The following reply was made to PR debug/8188; it has been noted by GNATS. From: Daniel Jacobowitz 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>: Abbrev Number: 15 (DW_TAG_structure_type) > DW_AT_sibling : > DW_AT_name : B > DW_AT_byte_size : 12 > DW_AT_decl_file : 1 > DW_AT_decl_line : 12 > DW_AT_containing_type: > 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