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: unassig...@gcc.gnu.org ReportedBy: harihar...@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).