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

Reply via email to