[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