From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16644 invoked by alias); 9 Jan 2010 23:32:03 -0000 Received: (qmail 16633 invoked by uid 22791); 9 Jan 2010 23:32:03 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from mail.intrepid.com (HELO mail.intrepid.com) (74.95.8.113) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 09 Jan 2010 23:31:59 +0000 Received: from nenad-vukicevics-macbook-pro.local ([10.10.11.101]) by mail.intrepid.com (8.13.8/8.13.8) with ESMTP id o09NVvWb026977; Sat, 9 Jan 2010 15:31:57 -0800 Message-ID: <4B4911EC.1050102@intrepid.com> Date: Sat, 09 Jan 2010 23:32:00 -0000 From: Nenad Vukicevic User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 MIME-Version: 1.0 To: Jan Kratochvil CC: Gary Funck , GCC List Subject: Re: dwarf2 - multiple DW_TAG_variable for global variable References: <4B42EB7A.6000107@intrepid.com> <4B48E99B.6000508@intrepid.com> <20100109210154.GH13614@intrepid.com> <20100109211841.GA26361@host0.dyn.jankratochvil.net> In-Reply-To: <20100109211841.GA26361@host0.dyn.jankratochvil.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2010-01/txt/msg00194.txt.bz2 We used GCC regression testing to pin point PR39563 when multiple (but not equal) definitions started appearing in dwarf code. We used the head version of GCC, gcc-4.5.20091224 to be precise, for testing this abnormally. I also saw appearance of DIEs duplicates you mention in PR 39524 in the following example: extern int xxxxx; int main(){xxxxx=1;} gcc 4.3.2 - does NOT have duplicates gcc 4..4.1 20090725 (REDHAT 4.4.1-2) - does have duplicates gcc 4.4.2 - does NOT have duplicates gcc 4.5.20091224 - does have duplicates Duplicates are in the form described in PR39524. In the case of this code: int xxxxx; int main(){xxxxx=1;} I see duplicates in the form of: <1><54>: Abbrev Number: 4 (DW_TAG_variable) <55> DW_AT_name : (indirect string, offset: 0x38): xxxxx <59> DW_AT_decl_file : 1 <5a> DW_AT_decl_line : 1 <5b> DW_AT_type : <0x4d> <5f> DW_AT_external : 1 <60> DW_AT_declaration : 1 <1><61>: Abbrev Number: 5 (DW_TAG_variable) <62> DW_AT_name : (indirect string, offset: 0x38): xxxxx <66> DW_AT_decl_file : 1 <67> DW_AT_decl_line : 1 <68> DW_AT_type : <0x4d> <6c> DW_AT_external : 1 <6d> DW_AT_location : 9 byte block: 3 0 0 0 0 0 0 0 0 (DW_OP_addr: 0) in 4.4.1 and 4.5 releases. Any idea if this is a correct dwarf? Or must be treated as a duplicate somehow? Thanks, Nenad On 1/9/10 1:18 PM, Jan Kratochvil wrote: > On Sat, 09 Jan 2010 22:01:54 +0100, Gary Funck wrote: > >> On 01/09/10 12:39:55, Nenad Vukicevic wrote: >> >>> This dwarf code started appearing since this patch: >>> >> Here's the GCC bug report that led to this patch: >> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39563 >> > Such DIEs duplicities are being tracked at: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39524 > > (Unaware how/if any were caused by the PR 39563.) > > > Regards, > Jan >