http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56805



             Bug #: 56805

           Summary: DW_AT_typedef missing when -fdebug-types-section is

                    used (and -fno-eliminate-unused-debug-types)

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: debug

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: jan.sm...@alcatel-lucent.com





typedef struct

{

    char  b[4];

} some_typedef_name;



typedef some_typedef_name joske;



int main()

{

    return 0;

}



Compiled with :

-gdwarf-4 -fno-var-tracking-assignments -fno-eliminate-unused-debug-types

-fdebug-types-section





Contents of the .debug_types section:



  Compilation Unit @ offset 0x0:

   Length:        0x4f (32-bit)

   Version:       4

   Abbrev Offset: 0

   Pointer Size:  4

   Signature:     86cb53f6d82bc2c9

   Type Offset:   0x1d

 <0><17>: Abbrev Number: 1 (DW_TAG_type_unit)

    <18>   DW_AT_language    : 4    (C++)

    <19>   DW_AT_stmt_list   : 0x0

 <1><1d>: Abbrev Number: 2 (DW_TAG_structure_type)

    <1e>   DW_AT_byte_size   : 4

    <1f>   DW_AT_decl_file   : 1

    <20>   DW_AT_decl_line   : 2

    <21>   DW_AT_linkage_name: (indirect string, offset: 0x0):

17some_typedef_name

    <25>   DW_AT_sibling     : <0x34>

 <2><29>: Abbrev Number: 3 (DW_TAG_member)

    <2a>   DW_AT_name        : b

    <2c>   DW_AT_decl_file   : 1

    <2d>   DW_AT_decl_line   : 3

    <2e>   DW_AT_type        : <0x34>

    <32>   DW_AT_data_member_location: 0

 <1><34>: Abbrev Number: 4 (DW_TAG_array_type)

    <35>   DW_AT_type        : <0x44>

    <39>   DW_AT_sibling     : <0x44>

 <2><3d>: Abbrev Number: 5 (DW_TAG_subrange_type)

    <3e>   DW_AT_type        : <0x4b>

    <42>   DW_AT_upper_bound : 3

 <1><44>: Abbrev Number: 6 (DW_TAG_base_type)

    <45>   DW_AT_byte_size   : 1

    <46>   DW_AT_encoding    : 6    (signed char)

    <47>   DW_AT_name        : (indirect string, offset: 0x14): char

 <1><4b>: Abbrev Number: 6 (DW_TAG_base_type)

    <4c>   DW_AT_byte_size   : 4

    <4d>   DW_AT_encoding    : 7    (unsigned)

    <4e>   DW_AT_name        : (indirect string, offset: 0x19): sizetype



Contents of the .debug_info section:



  Compilation Unit @ offset 0x0:

   Length:        0x48 (32-bit)

   Version:       4

   Abbrev Offset: 0

   Pointer Size:  4

 <0><b>: Abbrev Number: 7 (DW_TAG_compile_unit)

    <c>   DW_AT_producer    : (indirect string, offset: 0x27): GNU C++ 4.8.0

    <10>   DW_AT_language    : 4    (C++)

    <11>   DW_AT_name        : (indirect string, offset: 0x103): /tmp/dwarf.c

    <15>   DW_AT_low_pc      : 0x0

    <19>   DW_AT_high_pc     : 0x24

    <1d>   DW_AT_stmt_list   : 0x0

 <1><21>: Abbrev Number: 6 (DW_TAG_base_type)

    <22>   DW_AT_byte_size   : 4

    <23>   DW_AT_encoding    : 7    (unsigned)

    <24>   DW_AT_name        : (indirect string, offset: 0x19): sizetype

 <1><28>: Abbrev Number: 6 (DW_TAG_base_type)

    <29>   DW_AT_byte_size   : 1

    <2a>   DW_AT_encoding    : 6    (signed char)

    <2b>   DW_AT_name        : (indirect string, offset: 0x14): char

 <1><2f>: Abbrev Number: 8 (DW_TAG_subprogram)

    <30>   DW_AT_external    : 1

    <30>   DW_AT_name        : (indirect string, offset: 0x22): main

    <34>   DW_AT_decl_file   : 1

    <35>   DW_AT_decl_line   : 7

    <36>   DW_AT_type        : <0x44>

    <3a>   DW_AT_low_pc      : 0x0

    <3e>   DW_AT_high_pc     : 0x24

    <42>   DW_AT_frame_base  : 1 byte block: 9c     (DW_OP_call_frame_cfa)

    <44>   DW_AT_GNU_all_call_sites: 1

 <1><44>: Abbrev Number: 9 (DW_TAG_base_type)

    <45>   DW_AT_byte_size   : 4

    <46>   DW_AT_encoding    : 5    (signed)

    <47>   DW_AT_name        : int





without  -fdebug-types-section (note the DW_AT_typedef for 'some_typedef_name'

and 'joske')



Contents of the .debug_info section:



  Compilation Unit @ offset 0x0:

   Length:        0x85 (32-bit)

   Version:       4

   Abbrev Offset: 0

   Pointer Size:  4

 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)

    <c>   DW_AT_producer    : (indirect string, offset: 0x2c): GNU C++ 4.8.0

   <10>   DW_AT_language    : 4    (C++)

    <11>   DW_AT_name        : (indirect string, offset: 0x105): /tmp/dwarf.c

    <15>   DW_AT_low_pc      : 0x0

    <19>   DW_AT_high_pc     : 0x24

    <1d>   DW_AT_stmt_list   : 0x0

 <1><21>: Abbrev Number: 2 (DW_TAG_structure_type)

    <22>   DW_AT_byte_size   : 4

    <23>   DW_AT_decl_file   : 1

    <24>   DW_AT_decl_line   : 2

    <25>   DW_AT_linkage_name: (indirect string, offset: 0x18):

17some_typedef_name

    <29>   DW_AT_sibling     : <0x38>

 <2><2d>: Abbrev Number: 3 (DW_TAG_member)

    <2e>   DW_AT_name        : b

    <30>   DW_AT_decl_file   : 1

    <31>   DW_AT_decl_line   : 3

    <32>   DW_AT_type        : <0x38>

    <36>   DW_AT_data_member_location: 0

 <1><38>: Abbrev Number: 4 (DW_TAG_array_type)

    <39>   DW_AT_type        : <0x4f>

    <3d>   DW_AT_sibling     : <0x48>

 <2><41>: Abbrev Number: 5 (DW_TAG_subrange_type)

    <42>   DW_AT_type        : <0x48>

    <46>   DW_AT_upper_bound : 3

 <1><48>: Abbrev Number: 6 (DW_TAG_base_type)

    <49>   DW_AT_byte_size   : 4

    <4a>   DW_AT_encoding    : 7    (unsigned)

    <4b>   DW_AT_name        : (indirect string, offset: 0xf2): sizetype

 <1><4f>: Abbrev Number: 6 (DW_TAG_base_type)

    <50>   DW_AT_byte_size   : 1

    <51>   DW_AT_encoding    : 6    (signed char)

    <52>   DW_AT_name        : (indirect string, offset: 0x100): char

 <1><56>: Abbrev Number: 7 (DW_TAG_typedef)

    <57>   DW_AT_name        : (indirect string, offset: 0x0):

some_typedef_name

    <5b>   DW_AT_decl_file   : 1

    <5c>   DW_AT_decl_line   : 4

    <5d>   DW_AT_type        : <0x21>

 <1><61>: Abbrev Number: 7 (DW_TAG_typedef)

    <62>   DW_AT_name        : (indirect string, offset: 0x12): joske

    <66>   DW_AT_decl_file   : 1

    <67>   DW_AT_decl_line   : 6

    <68>   DW_AT_type        : <0x56>

 <1><6c>: Abbrev Number: 8 (DW_TAG_subprogram)

    <6d>   DW_AT_external    : 1

    <6d>   DW_AT_name        : (indirect string, offset: 0xfb): main

    <71>   DW_AT_decl_file   : 1

    <72>   DW_AT_decl_line   : 7

    <73>   DW_AT_type        : <0x81>

    <77>   DW_AT_low_pc      : 0x0

    <7b>   DW_AT_high_pc     : 0x24

    <7f>   DW_AT_frame_base  : 1 byte block: 9c     (DW_OP_call_frame_cfa)

    <81>   DW_AT_GNU_all_call_sites: 1

 <1><81>: Abbrev Number: 9 (DW_TAG_base_type)

    <82>   DW_AT_byte_size   : 4

    <83>   DW_AT_encoding    : 5    (signed)

    <84>   DW_AT_name        : int

Reply via email to