Files
clang-p2996/llvm/test/DebugInfo/XCOFF/empty.ll
stephenpeckham 4b1254e7d4 [AIX] In assembly file, create a dummy text renamed to an empty string (#73052)
This works around an AIX assembler and linker bug. If the
-fno-integrated-as and -frecord-command-line options are used but
there's no actual code in the source file, the assembler creates an
object file with only an .info section. The AIX linker rejects such an
object file.
2023-12-04 17:35:47 -06:00

527 lines
30 KiB
LLVM

; RUN: llc -debugger-tune=gdb -mtriple powerpc-ibm-aix-xcoff < %s | \
; RUN: FileCheck %s --check-prefix=ASM32
; RUN: llc -debugger-tune=gdb -mtriple powerpc64-ibm-aix-xcoff < %s | \
; RUN: FileCheck %s --check-prefix=ASM64
; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj < %s | \
; RUN: llvm-dwarfdump --all - | FileCheck %s --check-prefix=DWARF32
source_filename = "1.c"
target datalayout = "E-m:a-p:32:32-i64:64-n32"
; Function Attrs: noinline nounwind optnone
define i32 @main() #0 !dbg !8 {
entry:
%retval = alloca i32, align 4
store i32 0, ptr %retval, align 4
ret i32 0, !dbg !12
}
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6}
!llvm.ident = !{!7}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)
!1 = !DIFile(filename: "1.c", directory: "debug")
!2 = !{}
!3 = !{i32 7, !"Dwarf Version", i32 4}
!4 = !{i32 2, !"Debug Info Version", i32 3}
!5 = !{i32 1, !"wchar_size", i32 2}
!6 = !{i32 7, !"PIC Level", i32 2}
!7 = !{!"clang version 12.0.0"}
!8 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 1, type: !9, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!9 = !DISubroutineType(types: !10)
!10 = !{!11}
!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!12 = !DILocation(line: 3, column: 3, scope: !8)
; ASM32: .file "1.c"
; ASM32-NEXT: .csect ..text..[PR],5
; ASM32-NEXT: .rename ..text..[PR],""
; ASM32-NEXT: .globl main[DS] # -- Begin function main
; ASM32-NEXT: .globl .main
; ASM32-NEXT: .align 2
; ASM32-NEXT: .csect main[DS],2
; ASM32-NEXT: .vbyte 4, .main # @main
; ASM32-NEXT: .vbyte 4, TOC[TC0]
; ASM32-NEXT: .vbyte 4, 0
; ASM32-NEXT: .csect ..text..[PR],5
; ASM32-NEXT: .main:
; ASM32-NEXT: L..func_begin0:
; ASM32-NEXT: # %bb.0: # %entry
; ASM32-NEXT: L..tmp0:
; ASM32-NEXT: li 4, 0
; ASM32-NEXT: L..tmp1:
; ASM32-NEXT: L..tmp2:
; ASM32-NEXT: li 3, 0
; ASM32-NEXT: stw 4, -4(1)
; ASM32-NEXT: blr
; ASM32-NEXT: L..tmp3:
; ASM32-NEXT: L..main0:
; ASM32-NEXT: .vbyte 4, 0x00000000 # Traceback table begin
; ASM32-NEXT: .byte 0x00 # Version = 0
; ASM32-NEXT: .byte 0x09 # Language = CPlusPlus
; ASM32-NEXT: .byte 0x20 # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue
; ASM32-NEXT: # +HasTraceBackTableOffset, -IsInternalProcedure
; ASM32-NEXT: # -HasControlledStorage, -IsTOCless
; ASM32-NEXT: # -IsFloatingPointPresent
; ASM32-NEXT: # -IsFloatingPointOperationLogOrAbortEnabled
; ASM32-NEXT: .byte 0x40 # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed
; ASM32-NEXT: # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved
; ASM32-NEXT: .byte 0x00 # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0
; ASM32-NEXT: .byte 0x00 # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0
; ASM32-NEXT: .byte 0x00 # NumberOfFixedParms = 0
; ASM32-NEXT: .byte 0x01 # NumberOfFPParms = 0, +HasParmsOnStack
; ASM32-NEXT: .vbyte 4, L..main0-.main # Function size
; ASM32-NEXT: .vbyte 2, 0x0004 # Function name len = 4
; ASM32-NEXT: .byte "main" # Function Name
; ASM32-NEXT: L..func_end0:
; ASM32-NEXT: # -- End function
; ASM32-NEXT: L..sec_end0:
; ASM32: .dwsect 0x60000
; ASM32-NEXT: L...dwabrev:
; ASM32-NEXT: .byte 1 # Abbreviation Code
; 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 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 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 17 # DW_AT_low_pc
; ASM32-NEXT: .byte 1 # DW_FORM_addr
; ASM32-NEXT: .byte 18 # DW_AT_high_pc
; ASM32-NEXT: .byte 6 # DW_FORM_data4
; ASM32-NEXT: .byte 0 # EOM(1)
; ASM32-NEXT: .byte 0 # EOM(2)
; ASM32-NEXT: .byte 2 # Abbreviation Code
; ASM32-NEXT: .byte 46 # DW_TAG_subprogram
; ASM32-NEXT: .byte 0 # DW_CHILDREN_no
; ASM32-NEXT: .byte 17 # DW_AT_low_pc
; ASM32-NEXT: .byte 1 # DW_FORM_addr
; ASM32-NEXT: .byte 18 # DW_AT_high_pc
; ASM32-NEXT: .byte 6 # DW_FORM_data4
; 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 58 # DW_AT_decl_file
; ASM32-NEXT: .byte 11 # DW_FORM_data1
; ASM32-NEXT: .byte 59 # DW_AT_decl_line
; ASM32-NEXT: .byte 11 # DW_FORM_data1
; ASM32-NEXT: .byte 39 # DW_AT_prototyped
; ASM32-NEXT: .byte 25 # DW_FORM_flag_present
; ASM32-NEXT: .byte 73 # DW_AT_type
; ASM32-NEXT: .byte 19 # DW_FORM_ref4
; ASM32-NEXT: .byte 63 # DW_AT_external
; ASM32-NEXT: .byte 25 # DW_FORM_flag_present
; ASM32-NEXT: .byte 0 # EOM(1)
; ASM32-NEXT: .byte 0 # EOM(2)
; ASM32-NEXT: .byte 3 # Abbreviation Code
; 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 62 # DW_AT_encoding
; ASM32-NEXT: .byte 11 # DW_FORM_data1
; ASM32-NEXT: .byte 11 # DW_AT_byte_size
; ASM32-NEXT: .byte 11 # DW_FORM_data1
; ASM32-NEXT: .byte 0 # EOM(1)
; ASM32-NEXT: .byte 0 # EOM(2)
; ASM32-NEXT: .byte 0 # EOM(3)
; ASM32: .dwsect 0x10000
; ASM32-NEXT: L...dwinfo:
; ASM32-NEXT: L..cu_begin0:
; 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: .vbyte 2, 12 # DW_AT_language
; ASM32-NEXT: .vbyte 4, L..info_string1 # DW_AT_name
; 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: .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: .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 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-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: L..debug_info_end0:
; ASM32: .dwsect 0x70000
; ASM32-NEXT: L...dwstr:
; ASM32-NEXT: L..info_string0:
; ASM32-NEXT: .string "clang version 12.0.0" # string offset=0
; ASM32-NEXT: L..info_string1:
; ASM32-NEXT: .string "1.c" # string offset=21
; ASM32-NEXT: L..info_string2:
; ASM32-NEXT: .string "debug" # string offset=25
; ASM32-NEXT: L..info_string3:
; ASM32-NEXT: .string "main" # string offset=31
; ASM32-NEXT: L..info_string4:
; ASM32-NEXT: .string "int" # string offset=36
; ASM32-NEXT: .toc
; ASM32: .dwsect 0x20000
; ASM32-NEXT: L...dwline:
; ASM32-NEXT: L..debug_line_0:
; ASM32-NEXT: .set L..line_table_start0, L..debug_line_0-4
; ASM32-NEXT: .vbyte 2, 4
; ASM32-NEXT: .vbyte 4, L..prologue_end0-L..prologue_start0
; ASM32-NEXT: L..prologue_start0:
; ASM32-NEXT: .byte 4
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte -5
; ASM32-NEXT: .byte 14
; ASM32-NEXT: .byte 13
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte "debug"
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte "1.c"
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 0
; ASM32-NEXT: .byte 0
; ASM32-NEXT: L..prologue_end0:
; ASM32-NEXT: .byte 0 # Set address to L..tmp0
; ASM32-NEXT: .byte 5
; ASM32-NEXT: .byte 2
; ASM32-NEXT: .vbyte 4, L..tmp0
; ASM32-NEXT: .byte 19 # Start sequence
; ASM32-NEXT: .byte 5
; ASM32-NEXT: .byte 3
; ASM32-NEXT: .byte 10
; ASM32-NEXT: .byte 0 # Set address to L..tmp2
; ASM32-NEXT: .byte 5
; ASM32-NEXT: .byte 2
; ASM32-NEXT: .vbyte 4, L..tmp2
; ASM32-NEXT: .byte 3 # Advance line 1
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 0 # Set address to L..func_end0
; ASM32-NEXT: .byte 5
; ASM32-NEXT: .byte 2
; ASM32-NEXT: .vbyte 4, L..func_end0
; ASM32-NEXT: .byte 0 # End sequence
; ASM32-NEXT: .byte 1
; ASM32-NEXT: .byte 1
; ASM32-NEXT: L..debug_line_end0:
; ASM64: .file "1.c"
; ASM64-NEXT: .csect ..text..[PR],5
; ASM64-NEXT: .rename ..text..[PR],""
; ASM64-NEXT: .globl main[DS] # -- Begin function main
; ASM64-NEXT: .globl .main
; ASM64-NEXT: .align 2
; ASM64-NEXT: .csect main[DS],3
; ASM64-NEXT: .vbyte 8, .main # @main
; ASM64-NEXT: .vbyte 8, TOC[TC0]
; ASM64-NEXT: .vbyte 8, 0
; ASM64-NEXT: .csect ..text..[PR],5
; ASM64-NEXT: .main:
; ASM64-NEXT: L..func_begin0:
; ASM64-NEXT: # %bb.0: # %entry
; ASM64-NEXT: L..tmp0:
; ASM64-NEXT: li 4, 0
; ASM64-NEXT: L..tmp1:
; ASM64-NEXT: L..tmp2:
; ASM64-NEXT: li 3, 0
; ASM64-NEXT: stw 4, -4(1)
; ASM64-NEXT: blr
; ASM64-NEXT: L..tmp3:
; ASM64-NEXT: L..main0:
; ASM64-NEXT: .vbyte 4, 0x00000000 # Traceback table begin
; ASM64-NEXT: .byte 0x00 # Version = 0
; ASM64-NEXT: .byte 0x09 # Language = CPlusPlus
; ASM64-NEXT: .byte 0x20 # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue
; ASM64-NEXT: # +HasTraceBackTableOffset, -IsInternalProcedure
; ASM64-NEXT: # -HasControlledStorage, -IsTOCless
; ASM64-NEXT: # -IsFloatingPointPresent
; ASM64-NEXT: # -IsFloatingPointOperationLogOrAbortEnabled
; ASM64-NEXT: .byte 0x40 # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed
; ASM64-NEXT: # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved
; ASM64-NEXT: .byte 0x00 # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0
; ASM64-NEXT: .byte 0x00 # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0
; ASM64-NEXT: .byte 0x00 # NumberOfFixedParms = 0
; ASM64-NEXT: .byte 0x01 # NumberOfFPParms = 0, +HasParmsOnStack
; ASM64-NEXT: .vbyte 4, L..main0-.main # Function size
; ASM64-NEXT: .vbyte 2, 0x0004 # Function name len = 4
; ASM64-NEXT: .byte "main" # Function Name
; ASM64-NEXT: L..func_end0:
; ASM64-NEXT: # -- End function
; ASM64-NEXT: L..sec_end0:
; ASM64: .dwsect 0x60000
; ASM64-NEXT: L...dwabrev:
; ASM64-NEXT: .byte 1 # Abbreviation Code
; 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 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 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 17 # DW_AT_low_pc
; ASM64-NEXT: .byte 1 # DW_FORM_addr
; ASM64-NEXT: .byte 18 # DW_AT_high_pc
; ASM64-NEXT: .byte 6 # DW_FORM_data4
; ASM64-NEXT: .byte 0 # EOM(1)
; ASM64-NEXT: .byte 0 # EOM(2)
; ASM64-NEXT: .byte 2 # Abbreviation Code
; ASM64-NEXT: .byte 46 # DW_TAG_subprogram
; ASM64-NEXT: .byte 0 # DW_CHILDREN_no
; ASM64-NEXT: .byte 17 # DW_AT_low_pc
; ASM64-NEXT: .byte 1 # DW_FORM_addr
; ASM64-NEXT: .byte 18 # DW_AT_high_pc
; ASM64-NEXT: .byte 6 # DW_FORM_data4
; 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 58 # DW_AT_decl_file
; ASM64-NEXT: .byte 11 # DW_FORM_data1
; ASM64-NEXT: .byte 59 # DW_AT_decl_line
; ASM64-NEXT: .byte 11 # DW_FORM_data1
; ASM64-NEXT: .byte 39 # DW_AT_prototyped
; ASM64-NEXT: .byte 25 # DW_FORM_flag_present
; ASM64-NEXT: .byte 73 # DW_AT_type
; ASM64-NEXT: .byte 19 # DW_FORM_ref4
; ASM64-NEXT: .byte 63 # DW_AT_external
; ASM64-NEXT: .byte 25 # DW_FORM_flag_present
; ASM64-NEXT: .byte 0 # EOM(1)
; ASM64-NEXT: .byte 0 # EOM(2)
; ASM64-NEXT: .byte 3 # Abbreviation Code
; 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 62 # DW_AT_encoding
; ASM64-NEXT: .byte 11 # DW_FORM_data1
; ASM64-NEXT: .byte 11 # DW_AT_byte_size
; ASM64-NEXT: .byte 11 # DW_FORM_data1
; ASM64-NEXT: .byte 0 # EOM(1)
; ASM64-NEXT: .byte 0 # EOM(2)
; ASM64-NEXT: .byte 0 # EOM(3)
; ASM64: .dwsect 0x10000
; ASM64-NEXT: L...dwinfo:
; ASM64-NEXT: L..cu_begin0:
; ASM64-NEXT: .vbyte 2, 4 # DWARF version number
; 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: .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: .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: .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 1 # DW_AT_decl_line
; ASM64-NEXT: # DW_AT_prototyped
; ASM64-NEXT: .vbyte 4, 99 # 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 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: .string "clang version 12.0.0" # string offset=0
; ASM64-NEXT: L..info_string1:
; ASM64-NEXT: .string "1.c" # string offset=21
; ASM64-NEXT: L..info_string2:
; ASM64-NEXT: .string "debug" # string offset=25
; ASM64-NEXT: L..info_string3:
; ASM64-NEXT: .string "main" # string offset=31
; ASM64-NEXT: L..info_string4:
; ASM64-NEXT: .string "int" # string offset=36
; ASM64-NEXT: .toc
; ASM64: .dwsect 0x20000
; ASM64-NEXT: L...dwline:
; ASM64-NEXT: L..debug_line_0:
; ASM64-NEXT: .set L..line_table_start0, L..debug_line_0-12
; ASM64-NEXT: .vbyte 2, 4
; ASM64-NEXT: .vbyte 8, L..prologue_end0-L..prologue_start0
; ASM64-NEXT: L..prologue_start0:
; ASM64-NEXT: .byte 4
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte -5
; ASM64-NEXT: .byte 14
; ASM64-NEXT: .byte 13
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte "debug"
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte "1.c"
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 0
; ASM64-NEXT: .byte 0
; ASM64-NEXT: L..prologue_end0:
; ASM64-NEXT: .byte 0 # Set address to L..tmp0
; ASM64-NEXT: .byte 9
; ASM64-NEXT: .byte 2
; ASM64-NEXT: .vbyte 8, L..tmp0
; ASM64-NEXT: .byte 19 # Start sequence
; ASM64-NEXT: .byte 5
; ASM64-NEXT: .byte 3
; ASM64-NEXT: .byte 10
; ASM64-NEXT: .byte 0 # Set address to L..tmp2
; ASM64-NEXT: .byte 9
; ASM64-NEXT: .byte 2
; ASM64-NEXT: .vbyte 8, L..tmp2
; ASM64-NEXT: .byte 3 # Advance line 1
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 0 # Set address to L..func_end0
; ASM64-NEXT: .byte 9
; ASM64-NEXT: .byte 2
; ASM64-NEXT: .vbyte 8, L..func_end0
; ASM64-NEXT: .byte 0 # End sequence
; ASM64-NEXT: .byte 1
; ASM64-NEXT: .byte 1
; ASM64-NEXT: L..debug_line_end0:
; DWARF32: : file format aixcoff-rs6000
; DWARF32: .debug_abbrev contents:
; DWARF32-NEXT: Abbrev table for offset: 0x00000000
; DWARF32-NEXT: [1] DW_TAG_compile_unit DW_CHILDREN_yes
; DWARF32-NEXT: DW_AT_producer DW_FORM_string
; DWARF32-NEXT: DW_AT_language DW_FORM_data2
; DWARF32-NEXT: DW_AT_name DW_FORM_string
; DWARF32-NEXT: DW_AT_stmt_list DW_FORM_sec_offset
; DWARF32-NEXT: DW_AT_comp_dir DW_FORM_string
; DWARF32-NEXT: DW_AT_low_pc DW_FORM_addr
; DWARF32-NEXT: DW_AT_high_pc DW_FORM_data4
; DWARF32: [2] DW_TAG_subprogram DW_CHILDREN_no
; DWARF32-NEXT: DW_AT_low_pc DW_FORM_addr
; DWARF32-NEXT: DW_AT_high_pc DW_FORM_data4
; DWARF32-NEXT: DW_AT_frame_base DW_FORM_exprloc
; DWARF32-NEXT: DW_AT_name DW_FORM_string
; DWARF32-NEXT: DW_AT_decl_file DW_FORM_data1
; DWARF32-NEXT: DW_AT_decl_line DW_FORM_data1
; DWARF32-NEXT: DW_AT_prototyped DW_FORM_flag_present
; DWARF32-NEXT: DW_AT_type DW_FORM_ref4
; DWARF32-NEXT: DW_AT_external DW_FORM_flag_present
; DWARF32: [3] DW_TAG_base_type DW_CHILDREN_no
; DWARF32-NEXT: DW_AT_name DW_FORM_string
; DWARF32-NEXT: DW_AT_encoding DW_FORM_data1
; DWARF32-NEXT: DW_AT_byte_size DW_FORM_data1
; DWARF32: .debug_info contents:
; DWARF32-NEXT: 0x00000000: Compile Unit: length = 0x00000053, format = DWARF32, version = 0x0004, abbr_offset = 0x0000, addr_size = 0x04 (next unit at 0x00000057)
; DWARF32: 0x0000000b: DW_TAG_compile_unit
; DWARF32-NEXT: DW_AT_producer ("clang version 12.0.0")
; DWARF32-NEXT: DW_AT_language (DW_LANG_C99)
; DWARF32-NEXT: DW_AT_name ("1.c")
; DWARF32-NEXT: DW_AT_stmt_list (0x00000000)
; DWARF32-NEXT: DW_AT_comp_dir ("debug")
; DWARF32-NEXT: DW_AT_low_pc (0x00000000)
; DWARF32-NEXT: DW_AT_high_pc (0x00000026)
; DWARF32: 0x00000039: DW_TAG_subprogram
; DWARF32-NEXT: DW_AT_low_pc (0x00000000)
; DWARF32-NEXT: DW_AT_high_pc (0x00000026)
; DWARF32-NEXT: DW_AT_frame_base (DW_OP_reg1 R1)
; DWARF32-NEXT: DW_AT_name ("main")
; DWARF32-NEXT: DW_AT_decl_file ("debug{{[/\\]}}1.c")
; DWARF32-NEXT: DW_AT_decl_line (1)
; DWARF32-NEXT: DW_AT_prototyped (true)
; DWARF32-NEXT: DW_AT_type (0x0000004f "int")
; DWARF32-NEXT: DW_AT_external (true)
; DWARF32: 0x0000004f: DW_TAG_base_type
; DWARF32-NEXT: DW_AT_name ("int")
; DWARF32-NEXT: DW_AT_encoding (DW_ATE_signed)
; DWARF32-NEXT: DW_AT_byte_size (0x04)
; DWARF32: 0x00000056: NULL
; DWARF32: .debug_line contents:
; DWARF32-NEXT: debug_line[0x00000000]
; DWARF32-NEXT: Line table prologue:
; DWARF32-NEXT: total_length: 0x00000032
; DWARF32-NEXT: format: DWARF32
; DWARF32-NEXT: version: 4
; DWARF32-NEXT: prologue_length: 0x0000001b
; DWARF32-NEXT: min_inst_length: 4
; DWARF32-NEXT: max_ops_per_inst: 1
; DWARF32-NEXT: default_is_stmt: 1
; DWARF32-NEXT: line_base: -5
; DWARF32-NEXT: line_range: 14
; DWARF32-NEXT: opcode_base: 13
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_copy] = 0
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_advance_pc] = 1
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_advance_line] = 1
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_file] = 1
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_column] = 1
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_negate_stmt] = 0
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_basic_block] = 0
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_const_add_pc] = 0
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_isa] = 1
; DWARF32-NEXT: file_names[ 1]:
; DWARF32-NEXT: name: "1.c"
; DWARF32-NEXT: dir_index: 0
; DWARF32-NEXT: mod_time: 0x00000000
; DWARF32-NEXT: length: 0x00000000
; DWARF32: Address Line Column File ISA Discriminator OpIndex Flags
; DWARF32-NEXT: ------------------ ------ ------ ------ --- ------------- ------- -------------
; DWARF32-NEXT: 0x0000000000000000 2 0 1 0 0 0 is_stmt
; DWARF32-NEXT: 0x0000000000000004 3 3 1 0 0 0 is_stmt prologue_end
; DWARF32-NEXT: 0x0000000000000024 3 3 1 0 0 0 is_stmt end_sequence