https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101826
Bug ID: 101826 Summary: GFORTRAN: Debug info missing DW_TAG_string_type for array of variable length string Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: abdul.b.ijaz at intel dot com Target Milestone: --- Using GFortran 11.1.0 or older versions it is seen that dwarf debug info does not contain DW_TAG_string_type for array of variable length strings like shown in reproducer below and instead it contains DW_TAG_structure_type. As per dwarf spec there should have been DW_TAG_string_type for string type object. Reproducer program: subroutine str_arr (arr1) character (len=*):: arr1(:) print *, arr1 end subroutine str_arr program main interface subroutine str_arr (arr1) character (len=*):: arr1 (:) end subroutine str_arr end interface character (len=10) :: arr (5) arr = 'fortranarr' call str_arr (arr) end program main Dwarf info: <1><de>: Abbrev Number: 14 (DW_TAG_subprogram) <df> DW_AT_external : 1 <df> DW_AT_name : (indirect string, offset: 0x12): str_arr <e3> DW_AT_decl_file : 1 <e4> DW_AT_decl_line : 1 <e5> DW_AT_decl_column : 18 <e6> DW_AT_linkage_name: (indirect string, offset: 0x4b): str_arr_ <ea> DW_AT_low_pc : 0x7d5 <f2> DW_AT_high_pc : 0x19f <fa> DW_AT_frame_base : 1 byte block: 9c (DW_OP_call_frame_cfa) <fc> DW_AT_GNU_all_tail_call_sites: 1 <fc> DW_AT_sibling : <0x12c> <2><100>: Abbrev Number: 15 (DW_TAG_formal_parameter) <101> DW_AT_name : (indirect string, offset: 0x1): arr1 <105> DW_AT_type : <0x12c> <109> DW_AT_artificial : 1 <109> DW_AT_location : 4 byte block: 91 f8 7a 6 (DW_OP_fbreg: -648; DW_OP_deref) <2><10e>: Abbrev Number: 15 (DW_TAG_formal_parameter) <10f> DW_AT_name : (indirect string, offset: 0x0): _arr1 <113> DW_AT_type : <0x35> <117> DW_AT_artificial : 1 <117> DW_AT_location : 3 byte block: 91 f0 7a (DW_OP_fbreg: -656) <2><11b>: Abbrev Number: 16 (DW_TAG_variable) <11c> DW_AT_type : <0x2e> <120> DW_AT_artificial : 1 <120> DW_AT_location : 2 byte block: 91 50 (DW_OP_fbreg: -48) <2><123>: Abbrev Number: 16 (DW_TAG_variable) <124> DW_AT_type : <0x14d> <128> DW_AT_artificial : 1 <128> DW_AT_location : 2 byte block: 91 58 (DW_OP_fbreg: -40) <2><12b>: Abbrev Number: 0 <1><12c>: Abbrev Number: 17 (DW_TAG_structure_type) <12d> DW_AT_declaration : 1