[Bug debug/47946] New: Dwarf uses 64-bits to refer to a structure offset unnecessarily
hariharans at picochip dot com
gcc-bugzilla@gcc.gnu.org
Tue Mar 1 15:31:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47946
Summary: Dwarf uses 64-bits to refer to a structure offset
unnecessarily
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: hariharans@picochip.com
Created attachment 23503
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23503
The source code
Hello,
In the attached testcase, our dwarf reader reports the structure as
Abbrevation 2: DW_TAG_structure_type [has children]
DW_AT_name DW_FORM_string
DW_AT_byte_size DW_FORM_data1
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_sibling DW_FORM_ref4
Abbrevation 3: DW_TAG_member
DW_AT_name DW_FORM_string
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_byte_size DW_FORM_data1
DW_AT_bit_size DW_FORM_data1
DW_AT_bit_offset DW_FORM_data1
DW_AT_data_member_location DW_FORM_block1
Abbrevation 4: DW_TAG_member
DW_AT_name DW_FORM_string
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_byte_size DW_FORM_data1
DW_AT_bit_size DW_FORM_data1
DW_AT_bit_offset DW_FORM_data8
DW_AT_data_member_location DW_FORM_block1
Note that the first element (c1) takes a DW_FORM_data1 to represent the offset,
whereas the second (i) uses DW_FORM_data8. I am fairly certain it doesn't need
64-bits to represent the offset, so something is wrong here.
I tested this with picochip port in the mainline GCC (as of 03-feb-2011).
More information about the Gcc-bugs
mailing list