diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -366,7 +366,7 @@ DebuggerTuning = DebuggerKind::GDB; if (DwarfInlinedStrings == Default) - UseInlineStrings = TT.isNVPTX(); + UseInlineStrings = TT.isNVPTX() || TT.isOSAIX(); else UseInlineStrings = DwarfInlinedStrings == Enable; diff --git a/llvm/test/DebugInfo/XCOFF/empty.ll b/llvm/test/DebugInfo/XCOFF/empty.ll --- a/llvm/test/DebugInfo/XCOFF/empty.ll +++ b/llvm/test/DebugInfo/XCOFF/empty.ll @@ -81,15 +81,15 @@ ; ASM32-NEXT: .byte 17 # DW_TAG_compile_unit ; ASM32-NEXT: .byte 1 # DW_CHILDREN_yes ; ASM32-NEXT: .byte 37 # DW_AT_producer -; ASM32-NEXT: .byte 14 # DW_FORM_strp +; ASM32-NEXT: .byte 8 # DW_FORM_string ; ASM32-NEXT: .byte 19 # DW_AT_language ; ASM32-NEXT: .byte 5 # DW_FORM_data2 ; ASM32-NEXT: .byte 3 # DW_AT_name -; ASM32-NEXT: .byte 14 # DW_FORM_strp +; ASM32-NEXT: .byte 8 # DW_FORM_string ; ASM32-NEXT: .byte 16 # DW_AT_stmt_list ; ASM32-NEXT: .byte 23 # DW_FORM_sec_offset ; ASM32-NEXT: .byte 27 # DW_AT_comp_dir -; ASM32-NEXT: .byte 14 # DW_FORM_strp +; ASM32-NEXT: .byte 8 # DW_FORM_string ; ASM32-NEXT: .byte 17 # DW_AT_low_pc ; ASM32-NEXT: .byte 1 # DW_FORM_addr ; ASM32-NEXT: .byte 18 # DW_AT_high_pc @@ -106,7 +106,7 @@ ; ASM32-NEXT: .byte 64 # DW_AT_frame_base ; ASM32-NEXT: .byte 24 # DW_FORM_exprloc ; ASM32-NEXT: .byte 3 # DW_AT_name -; ASM32-NEXT: .byte 14 # DW_FORM_strp +; ASM32-NEXT: .byte 8 # DW_FORM_string ; ASM32-NEXT: .byte 58 # DW_AT_decl_file ; ASM32-NEXT: .byte 11 # DW_FORM_data1 ; ASM32-NEXT: .byte 59 # DW_AT_decl_line @@ -123,7 +123,7 @@ ; ASM32-NEXT: .byte 36 # DW_TAG_base_type ; ASM32-NEXT: .byte 0 # DW_CHILDREN_no ; ASM32-NEXT: .byte 3 # DW_AT_name -; ASM32-NEXT: .byte 14 # DW_FORM_strp +; ASM32-NEXT: .byte 8 # DW_FORM_string ; ASM32-NEXT: .byte 62 # DW_AT_encoding ; ASM32-NEXT: .byte 11 # DW_FORM_data1 ; ASM32-NEXT: .byte 11 # DW_AT_byte_size @@ -137,43 +137,35 @@ ; ASM32-NEXT: .vbyte 2, 4 # DWARF version number ; ASM32-NEXT: .vbyte 4, L...dwabrev # Offset Into Abbrev. Section ; ASM32-NEXT: .byte 4 # Address Size (in bytes) -; ASM32-NEXT: .byte 1 # Abbrev [1] 0xb:0x38 DW_TAG_compile_unit -; ASM32-NEXT: .vbyte 4, L..info_string0 # DW_AT_producer +; ASM32-NEXT: .byte 1 # Abbrev [1] 0xb:0x4c DW_TAG_compile_unit +; ASM32-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'2,'.,'0,'.,'0 # DW_AT_producer +; ASM32-NEXT: .byte 0 ; ASM32-NEXT: .vbyte 2, 12 # DW_AT_language -; ASM32-NEXT: .vbyte 4, L..info_string1 # DW_AT_name +; ASM32-NEXT: .byte '1,'.,'c # DW_AT_name +; ASM32-NEXT: .byte 0 ; ASM32-NEXT: .vbyte 4, L..line_table_start0 # DW_AT_stmt_list -; ASM32-NEXT: .vbyte 4, L..info_string2 # DW_AT_comp_dir +; ASM32-NEXT: .byte 'd,'e,'b,'u,'g # DW_AT_comp_dir +; ASM32-NEXT: .byte 0 ; ASM32-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc ; ASM32-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc -; ASM32-NEXT: .byte 2 # Abbrev [2] 0x26:0x15 DW_TAG_subprogram +; ASM32-NEXT: .byte 2 # Abbrev [2] 0x39:0x16 DW_TAG_subprogram ; ASM32-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc ; ASM32-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc ; ASM32-NEXT: .byte 1 # DW_AT_frame_base ; ASM32-NEXT: .byte 81 -; ASM32-NEXT: .vbyte 4, L..info_string3 # DW_AT_name +; ASM32-NEXT: .byte 'm,'a,'i,'n # DW_AT_name +; ASM32-NEXT: .byte 0 ; ASM32-NEXT: .byte 1 # DW_AT_decl_file ; ASM32-NEXT: .byte 1 # DW_AT_decl_line -; ASM32-NEXT: # DW_AT_prototyped -; ASM32-NEXT: .vbyte 4, 59 # DW_AT_type +; ASM32: .vbyte 4, 79 # DW_AT_type ; ASM32-NEXT: # DW_AT_external -; ASM32-NEXT: .byte 3 # Abbrev [3] 0x3b:0x7 DW_TAG_base_type -; ASM32-NEXT: .vbyte 4, L..info_string4 # DW_AT_name -; ASM32-NEXT: .byte 5 # DW_AT_encoding -; ASM32-NEXT: .byte 4 # DW_AT_byte_size -; ASM32-NEXT: .byte 0 # End Of Children Mark +; ASM32-NEXT: .byte 3 # Abbrev [3] 0x4f:0x7 DW_TAG_base_type +; ASM32-NEXT: .byte 'i,'n,'t # DW_AT_name +; ASM32-NEXT: .byte 0 +; ASM32-NEXT: .byte 5 # DW_AT_encoding +; ASM32-NEXT: .byte 4 # DW_AT_byte_size +; ASM32-NEXT: .byte 0 # End Of Children Mark ; ASM32-NEXT: L..debug_info_end0: -; ASM32: .dwsect 0x70000 -; ASM32-NEXT: L...dwstr: -; ASM32-NEXT: L..info_string0: -; ASM32-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'2,'.,'0,'.,'0,0000 # string offset=0 -; ASM32-NEXT: L..info_string1: -; ASM32-NEXT: .byte '1,'.,'c,0000 # string offset=21 -; ASM32-NEXT: L..info_string2: -; ASM32-NEXT: .byte 'd,'e,'b,'u,'g,0000 # string offset=25 -; ASM32-NEXT: L..info_string3: -; ASM32-NEXT: .byte 'm,'a,'i,'n,0000 # string offset=31 -; ASM32-NEXT: L..info_string4: -; ASM32-NEXT: .byte 'i,'n,'t,0000 # string offset=36 ; ASM32-NEXT: .toc ; ASM32: .dwsect 0x20000 ; ASM32-NEXT: L...dwline: @@ -282,15 +274,15 @@ ; ASM64-NEXT: .byte 17 # DW_TAG_compile_unit ; ASM64-NEXT: .byte 1 # DW_CHILDREN_yes ; ASM64-NEXT: .byte 37 # DW_AT_producer -; ASM64-NEXT: .byte 14 # DW_FORM_strp +; ASM64-NEXT: .byte 8 # DW_FORM_string ; ASM64-NEXT: .byte 19 # DW_AT_language ; ASM64-NEXT: .byte 5 # DW_FORM_data2 ; ASM64-NEXT: .byte 3 # DW_AT_name -; ASM64-NEXT: .byte 14 # DW_FORM_strp +; ASM64-NEXT: .byte 8 # DW_FORM_string ; ASM64-NEXT: .byte 16 # DW_AT_stmt_list ; ASM64-NEXT: .byte 23 # DW_FORM_sec_offset ; ASM64-NEXT: .byte 27 # DW_AT_comp_dir -; ASM64-NEXT: .byte 14 # DW_FORM_strp +; ASM64-NEXT: .byte 8 # DW_FORM_string ; ASM64-NEXT: .byte 17 # DW_AT_low_pc ; ASM64-NEXT: .byte 1 # DW_FORM_addr ; ASM64-NEXT: .byte 18 # DW_AT_high_pc @@ -307,7 +299,7 @@ ; ASM64-NEXT: .byte 64 # DW_AT_frame_base ; ASM64-NEXT: .byte 24 # DW_FORM_exprloc ; ASM64-NEXT: .byte 3 # DW_AT_name -; ASM64-NEXT: .byte 14 # DW_FORM_strp +; ASM64-NEXT: .byte 8 # DW_FORM_string ; ASM64-NEXT: .byte 58 # DW_AT_decl_file ; ASM64-NEXT: .byte 11 # DW_FORM_data1 ; ASM64-NEXT: .byte 59 # DW_AT_decl_line @@ -324,7 +316,7 @@ ; ASM64-NEXT: .byte 36 # DW_TAG_base_type ; ASM64-NEXT: .byte 0 # DW_CHILDREN_no ; ASM64-NEXT: .byte 3 # DW_AT_name -; ASM64-NEXT: .byte 14 # DW_FORM_strp +; ASM64-NEXT: .byte 8 # DW_FORM_string ; ASM64-NEXT: .byte 62 # DW_AT_encoding ; ASM64-NEXT: .byte 11 # DW_FORM_data1 ; ASM64-NEXT: .byte 11 # DW_AT_byte_size @@ -339,42 +331,31 @@ ; ASM64-NEXT: .vbyte 8, L...dwabrev # Offset Into Abbrev. Section ; ASM64-NEXT: .byte 8 # Address Size (in bytes) ; ASM64-NEXT: .byte 1 # Abbrev [1] 0x17:0x58 DW_TAG_compile_unit -; ASM64-NEXT: .vbyte 8, L..info_string0 # DW_AT_producer +; ASM64-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'2,'.,'0,'.,'0 # DW_AT_producer +; ASM64-NEXT: .byte 0 ; ASM64-NEXT: .vbyte 2, 12 # DW_AT_language -; ASM64-NEXT: .vbyte 8, L..info_string1 # DW_AT_name -; ASM64-NEXT: .vbyte 8, L..line_table_start0 # DW_AT_stmt_list -; ASM64-NEXT: .vbyte 8, L..info_string2 # DW_AT_comp_dir -; ASM64-NEXT: .vbyte 8, L..func_begin0 # DW_AT_low_pc +; ASM64-NEXT: .byte '1,'.,'c # DW_AT_name +; ASM64: .vbyte 8, L..line_table_start0 # DW_AT_stmt_list +; ASM64-NEXT: .byte 'd,'e,'b,'u,'g # DW_AT_comp_dir +; ASM64: .vbyte 8, L..func_begin0 # DW_AT_low_pc ; ASM64-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc -; ASM64-NEXT: .byte 2 # Abbrev [2] 0x46:0x1d DW_TAG_subprogram +; ASM64-NEXT: .byte 2 # Abbrev [2] 0x4d:0x1a DW_TAG_subprogram ; ASM64-NEXT: .vbyte 8, L..func_begin0 # DW_AT_low_pc ; ASM64-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc ; ASM64-NEXT: .byte 1 # DW_AT_frame_base -; ASM64-NEXT: .byte 81 -; ASM64-NEXT: .vbyte 8, L..info_string3 # DW_AT_name -; ASM64-NEXT: .byte 1 # DW_AT_decl_file +; ASM64-NEXT: .byte 8 +; ASM64-NEXT: .byte 'm,'a,'i,'n # DW_AT_name +; ASM64: .byte 1 # DW_AT_decl_file ; ASM64-NEXT: .byte 1 # DW_AT_decl_line ; ASM64-NEXT: # DW_AT_prototyped -; ASM64-NEXT: .vbyte 4, 99 # DW_AT_type +; ASM64-NEXT: .vbyte 4, 103 # DW_AT_type ; ASM64-NEXT: # DW_AT_external -; ASM64-NEXT: .byte 3 # Abbrev [3] 0x63:0xb DW_TAG_base_type -; ASM64-NEXT: .vbyte 8, L..info_string4 # DW_AT_name -; ASM64-NEXT: .byte 5 # DW_AT_encoding +; ASM64-NEXT: .byte 3 # Abbrev [3] 0x67:0x7 DW_TAG_base_type +; ASM64-NEXT: .byte 'i,'n,'t # DW_AT_name +; ASM64: .byte 5 # DW_AT_encoding ; ASM64-NEXT: .byte 4 # DW_AT_byte_size ; ASM64-NEXT: .byte 0 # End Of Children Mark ; ASM64-NEXT: L..debug_info_end0: -; ASM64: .dwsect 0x70000 -; ASM64-NEXT: L...dwstr: -; ASM64-NEXT: L..info_string0: -; ASM64-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'2,'.,'0,'.,'0,0000 # string offset=0 -; ASM64-NEXT: L..info_string1: -; ASM64-NEXT: .byte '1,'.,'c,0000 # string offset=21 -; ASM64-NEXT: L..info_string2: -; ASM64-NEXT: .byte 'd,'e,'b,'u,'g,0000 # string offset=25 -; ASM64-NEXT: L..info_string3: -; ASM64-NEXT: .byte 'm,'a,'i,'n,0000 # string offset=31 -; ASM64-NEXT: L..info_string4: -; ASM64-NEXT: .byte 'i,'n,'t,0000 # string offset=36 ; ASM64-NEXT: .toc ; ASM64: .dwsect 0x20000 ; ASM64-NEXT: L...dwline: diff --git a/llvm/test/DebugInfo/XCOFF/explicit-section.ll b/llvm/test/DebugInfo/XCOFF/explicit-section.ll --- a/llvm/test/DebugInfo/XCOFF/explicit-section.ll +++ b/llvm/test/DebugInfo/XCOFF/explicit-section.ll @@ -135,15 +135,15 @@ ; CHECK-NEXT: .byte 17 # DW_TAG_compile_unit ; CHECK-NEXT: .byte 1 # DW_CHILDREN_yes ; CHECK-NEXT: .byte 37 # DW_AT_producer -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 19 # DW_AT_language ; CHECK-NEXT: .byte 5 # DW_FORM_data2 ; CHECK-NEXT: .byte 3 # DW_AT_name -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 16 # DW_AT_stmt_list ; CHECK-NEXT: .byte 6 # DW_FORM_data4 ; CHECK-NEXT: .byte 27 # DW_AT_comp_dir -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 17 # DW_AT_low_pc ; CHECK-NEXT: .byte 1 # DW_FORM_addr ; CHECK-NEXT: .byte 85 # DW_AT_ranges @@ -160,7 +160,7 @@ ; CHECK-NEXT: .byte 64 # DW_AT_frame_base ; CHECK-NEXT: .byte 10 # DW_FORM_block1 ; CHECK-NEXT: .byte 3 # DW_AT_name -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 58 # DW_AT_decl_file ; CHECK-NEXT: .byte 11 # DW_FORM_data1 ; CHECK-NEXT: .byte 59 # DW_AT_decl_line @@ -175,7 +175,7 @@ ; CHECK-NEXT: .byte 36 # DW_TAG_base_type ; CHECK-NEXT: .byte 0 # DW_CHILDREN_no ; CHECK-NEXT: .byte 3 # DW_AT_name -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 62 # DW_AT_encoding ; CHECK-NEXT: .byte 11 # DW_FORM_data1 ; CHECK-NEXT: .byte 11 # DW_AT_byte_size @@ -189,36 +189,42 @@ ; CHECK-NEXT: .vbyte 2, 3 # DWARF version number ; CHECK-NEXT: .vbyte 4, L...dwabrev # Offset Into Abbrev. Section ; CHECK-NEXT: .byte 4 # Address Size (in bytes) -; CHECK-NEXT: .byte 1 # Abbrev [1] 0xb:0x4f DW_TAG_compile_unit -; CHECK-NEXT: .vbyte 4, L..info_string0 # DW_AT_producer +; CHECK-NEXT: .byte 1 # Abbrev [1] 0xb:0x63 DW_TAG_compile_unit +; CHECK-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'3,'.,'0,'.,'0 # DW_AT_producer +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .vbyte 2, 12 # DW_AT_language -; CHECK-NEXT: .vbyte 4, L..info_string1 # DW_AT_name +; CHECK-NEXT: .byte '2,'.,'c # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .vbyte 4, L..line_table_start0 # DW_AT_stmt_list -; CHECK-NEXT: .vbyte 4, L..info_string2 # DW_AT_comp_dir +; CHECK-NEXT: .byte 'd,'e,'b,'u,'g # DW_AT_comp_dir +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .vbyte 4, 0 # DW_AT_low_pc ; CHECK-NEXT: .vbyte 4, L..debug_ranges0 # DW_AT_ranges -; CHECK-NEXT: .byte 2 # Abbrev [2] 0x26:0x16 DW_TAG_subprogram +; CHECK-NEXT: .byte 2 # Abbrev [2] 0x39:0x16 DW_TAG_subprogram ; CHECK-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc ; CHECK-NEXT: .vbyte 4, L..func_end0 # DW_AT_high_pc ; CHECK-NEXT: .byte 1 # DW_AT_frame_base ; CHECK-NEXT: .byte 81 -; CHECK-NEXT: .vbyte 4, L..info_string3 # DW_AT_name +; CHECK-NEXT: .byte 'b,'a,'r # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .byte 1 # DW_AT_decl_file ; CHECK-NEXT: .byte 1 # DW_AT_decl_line -; CHECK-NEXT: .vbyte 4, 82 # DW_AT_type +; CHECK-NEXT: .vbyte 4, 102 # DW_AT_type ; CHECK-NEXT: .byte 1 # DW_AT_external -; CHECK-NEXT: .byte 2 # Abbrev [2] 0x3c:0x16 DW_TAG_subprogram +; CHECK-NEXT: .byte 2 # Abbrev [2] 0x4f:0x17 DW_TAG_subprogram ; CHECK-NEXT: .vbyte 4, L..func_begin1 # DW_AT_low_pc ; CHECK-NEXT: .vbyte 4, L..func_end1 # DW_AT_high_pc ; CHECK-NEXT: .byte 1 # DW_AT_frame_base ; CHECK-NEXT: .byte 81 -; CHECK-NEXT: .vbyte 4, L..info_string5 # DW_AT_name +; CHECK-NEXT: .byte 'm,'a,'i,'n # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .byte 1 # DW_AT_decl_file ; CHECK-NEXT: .byte 2 # DW_AT_decl_line -; CHECK-NEXT: .vbyte 4, 82 # DW_AT_type +; CHECK-NEXT: .vbyte 4, 102 # DW_AT_type ; CHECK-NEXT: .byte 1 # DW_AT_external -; CHECK-NEXT: .byte 3 # Abbrev [3] 0x52:0x7 DW_TAG_base_type -; CHECK-NEXT: .vbyte 4, L..info_string4 # DW_AT_name +; CHECK-NEXT: .byte 3 # Abbrev [3] 0x66:0x7 DW_TAG_base_type +; CHECK-NEXT: .byte 'i,'n,'t # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .byte 5 # DW_AT_encoding ; CHECK-NEXT: .byte 4 # DW_AT_byte_size ; CHECK-NEXT: .byte 0 # End Of Children Mark @@ -232,20 +238,6 @@ ; CHECK-NEXT: .vbyte 4, L..func_end1 ; CHECK-NEXT: .vbyte 4, 0 ; CHECK-NEXT: .vbyte 4, 0 -; CHECK: .dwsect 0x70000 -; CHECK-NEXT: L...dwstr: -; CHECK-NEXT: L..info_string0: -; CHECK-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'3,'.,'0,'.,'0,0000 # string offset=0 -; CHECK-NEXT: L..info_string1: -; CHECK-NEXT: .byte '2,'.,'c,0000 # string offset=21 -; CHECK-NEXT: L..info_string2: -; CHECK-NEXT: .byte 'd,'e,'b,'u,'g,0000 # string offset=25 -; CHECK-NEXT: L..info_string3: -; CHECK-NEXT: .byte 'b,'a,'r,0000 # string offset=31 -; CHECK-NEXT: L..info_string4: -; CHECK-NEXT: .byte 'i,'n,'t,0000 # string offset=35 -; CHECK-NEXT: L..info_string5: -; CHECK-NEXT: .byte 'm,'a,'i,'n,0000 # string offset=39 ; CHECK-NEXT: .toc ; CHECK: .dwsect 0x20000 ; CHECK-NEXT: L...dwline: diff --git a/llvm/test/DebugInfo/XCOFF/function-sections.ll b/llvm/test/DebugInfo/XCOFF/function-sections.ll --- a/llvm/test/DebugInfo/XCOFF/function-sections.ll +++ b/llvm/test/DebugInfo/XCOFF/function-sections.ll @@ -118,15 +118,15 @@ ; CHECK-NEXT: .byte 17 # DW_TAG_compile_unit ; CHECK-NEXT: .byte 1 # DW_CHILDREN_yes ; CHECK-NEXT: .byte 37 # DW_AT_producer -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 19 # DW_AT_language ; CHECK-NEXT: .byte 5 # DW_FORM_data2 ; CHECK-NEXT: .byte 3 # DW_AT_name -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 16 # DW_AT_stmt_list ; CHECK-NEXT: .byte 6 # DW_FORM_data4 ; CHECK-NEXT: .byte 27 # DW_AT_comp_dir -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 17 # DW_AT_low_pc ; CHECK-NEXT: .byte 1 # DW_FORM_addr ; CHECK-NEXT: .byte 85 # DW_AT_ranges @@ -143,7 +143,7 @@ ; CHECK-NEXT: .byte 64 # DW_AT_frame_base ; CHECK-NEXT: .byte 10 # DW_FORM_block1 ; CHECK-NEXT: .byte 3 # DW_AT_name -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 58 # DW_AT_decl_file ; CHECK-NEXT: .byte 11 # DW_FORM_data1 ; CHECK-NEXT: .byte 59 # DW_AT_decl_line @@ -160,7 +160,7 @@ ; CHECK-NEXT: .byte 36 # DW_TAG_base_type ; CHECK-NEXT: .byte 0 # DW_CHILDREN_no ; CHECK-NEXT: .byte 3 # DW_AT_name -; CHECK-NEXT: .byte 14 # DW_FORM_strp +; CHECK-NEXT: .byte 8 # DW_FORM_string ; CHECK-NEXT: .byte 62 # DW_AT_encoding ; CHECK-NEXT: .byte 11 # DW_FORM_data1 ; CHECK-NEXT: .byte 11 # DW_AT_byte_size @@ -174,38 +174,44 @@ ; CHECK-NEXT: .vbyte 2, 3 # DWARF version number ; CHECK-NEXT: .vbyte 4, L...dwabrev # Offset Into Abbrev. Section ; CHECK-NEXT: .byte 4 # Address Size (in bytes) -; CHECK-NEXT: .byte 1 # Abbrev [1] 0xb:0x51 DW_TAG_compile_unit -; CHECK-NEXT: .vbyte 4, L..info_string0 # DW_AT_producer +; CHECK-NEXT: .byte 1 # Abbrev [1] 0xb:0x64 DW_TAG_compile_unit +; CHECK-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'3,'.,'0,'.,'0 # DW_AT_producer +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .vbyte 2, 12 # DW_AT_language -; CHECK-NEXT: .vbyte 4, L..info_string1 # DW_AT_name +; CHECK-NEXT: .byte '1,'.,'c # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .vbyte 4, L..line_table_start0 # DW_AT_stmt_list -; CHECK-NEXT: .vbyte 4, L..info_string2 # DW_AT_comp_dir +; CHECK-NEXT: .byte 'd,'e,'b,'u,'g # DW_AT_comp_dir +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .vbyte 4, 0 # DW_AT_low_pc ; CHECK-NEXT: .vbyte 4, L..debug_ranges0 # DW_AT_ranges -; CHECK-NEXT: .byte 2 # Abbrev [2] 0x26:0x17 DW_TAG_subprogram +; CHECK-NEXT: .byte 2 # Abbrev [2] 0x39:0x17 DW_TAG_subprogram ; CHECK-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc ; CHECK-NEXT: .vbyte 4, L..func_end0 # DW_AT_high_pc ; CHECK-NEXT: .byte 1 # DW_AT_frame_base ; CHECK-NEXT: .byte 81 -; CHECK-NEXT: .vbyte 4, L..info_string3 # DW_AT_name +; CHECK-NEXT: .byte 'f,'o,'o # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .byte 1 # DW_AT_decl_file ; CHECK-NEXT: .byte 1 # DW_AT_decl_line ; CHECK-NEXT: .byte 1 # DW_AT_prototyped -; CHECK-NEXT: .vbyte 4, 84 # DW_AT_type +; CHECK-NEXT: .vbyte 4, 103 # DW_AT_type ; CHECK-NEXT: .byte 1 # DW_AT_external -; CHECK-NEXT: .byte 2 # Abbrev [2] 0x3d:0x17 DW_TAG_subprogram +; CHECK-NEXT: .byte 2 # Abbrev [2] 0x50:0x17 DW_TAG_subprogram ; CHECK-NEXT: .vbyte 4, L..func_begin1 # DW_AT_low_pc ; CHECK-NEXT: .vbyte 4, L..func_end1 # DW_AT_high_pc ; CHECK-NEXT: .byte 1 # DW_AT_frame_base ; CHECK-NEXT: .byte 81 -; CHECK-NEXT: .vbyte 4, L..info_string5 # DW_AT_name +; CHECK-NEXT: .byte 'b,'a,'r # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .byte 1 # DW_AT_decl_file ; CHECK-NEXT: .byte 6 # DW_AT_decl_line ; CHECK-NEXT: .byte 1 # DW_AT_prototyped -; CHECK-NEXT: .vbyte 4, 84 # DW_AT_type +; CHECK-NEXT: .vbyte 4, 103 # DW_AT_type ; CHECK-NEXT: .byte 1 # DW_AT_external -; CHECK-NEXT: .byte 3 # Abbrev [3] 0x54:0x7 DW_TAG_base_type -; CHECK-NEXT: .vbyte 4, L..info_string4 # DW_AT_name +; CHECK-NEXT: .byte 3 # Abbrev [3] 0x67:0x7 DW_TAG_base_type +; CHECK-NEXT: .byte 'i,'n,'t # DW_AT_name +; CHECK-NEXT: .byte 0 ; CHECK-NEXT: .byte 5 # DW_AT_encoding ; CHECK-NEXT: .byte 4 # DW_AT_byte_size ; CHECK-NEXT: .byte 0 # End Of Children Mark @@ -219,20 +225,6 @@ ; CHECK-NEXT: .vbyte 4, L..func_end1 ; CHECK-NEXT: .vbyte 4, 0 ; CHECK-NEXT: .vbyte 4, 0 -; CHECK: .dwsect 0x70000 -; CHECK-NEXT: L...dwstr: -; CHECK-NEXT: L..info_string0: -; CHECK-NEXT: .byte 'c,'l,'a,'n,'g,' ,'v,'e,'r,'s,'i,'o,'n,' ,'1,'3,'.,'0,'.,'0,0000 # string offset=0 -; CHECK-NEXT: L..info_string1: -; CHECK-NEXT: .byte '1,'.,'c,0000 # string offset=21 -; CHECK-NEXT: L..info_string2: -; CHECK-NEXT: .byte 'd,'e,'b,'u,'g,0000 # string offset=25 -; CHECK-NEXT: L..info_string3: -; CHECK-NEXT: .byte 'f,'o,'o,0000 # string offset=31 -; CHECK-NEXT: L..info_string4: -; CHECK-NEXT: .byte 'i,'n,'t,0000 # string offset=35 -; CHECK-NEXT: L..info_string5: -; CHECK-NEXT: .byte 'b,'a,'r,0000 # string offset=39 ; CHECK-NEXT: .toc ; CHECK: .dwsect 0x20000 ; CHECK-NEXT: L...dwline: