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