This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: dwarf2 - multiple DW_TAG_variable for global variable
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