1; RUN: llc -debugger-tune=gdb -mcpu=ppc -mtriple powerpc-ibm-aix-xcoff < %s | \ 2; RUN: FileCheck %s --check-prefix=ASM32 3; RUN: llc -debugger-tune=gdb -mcpu=ppc -mtriple powerpc64-ibm-aix-xcoff < %s | \ 4; RUN: FileCheck %s --check-prefix=ASM64 5; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mcpu=ppc -filetype=obj < %s | \ 6; RUN: llvm-dwarfdump --all - | FileCheck %s --check-prefix=DWARF32 7 8source_filename = "1.c" 9target datalayout = "E-m:a-p:32:32-i64:64-n32" 10 11; Function Attrs: noinline nounwind optnone 12define i32 @main() #0 !dbg !8 { 13entry: 14 %retval = alloca i32, align 4 15 store i32 0, ptr %retval, align 4 16 ret i32 0, !dbg !12 17} 18 19!llvm.dbg.cu = !{!0} 20!llvm.module.flags = !{!3, !4, !5, !6} 21!llvm.ident = !{!7} 22 23!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) 24!1 = !DIFile(filename: "1.c", directory: "debug") 25!2 = !{} 26!3 = !{i32 7, !"Dwarf Version", i32 4} 27!4 = !{i32 2, !"Debug Info Version", i32 3} 28!5 = !{i32 1, !"wchar_size", i32 2} 29!6 = !{i32 7, !"PIC Level", i32 2} 30!7 = !{!"clang version 12.0.0"} 31!8 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 1, type: !9, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2) 32!9 = !DISubroutineType(types: !10) 33!10 = !{!11} 34!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) 35!12 = !DILocation(line: 3, column: 3, scope: !8) 36 37; ASM32: .file "1.c" 38; ASM32-NEXT: .csect ..text..[PR],5 39; ASM32-NEXT: .rename ..text..[PR],"" 40; ASM32-NEXT: .machine "COM" 41; ASM32-NEXT: .globl main[DS] # -- Begin function main 42; ASM32-NEXT: .globl .main 43; ASM32-NEXT: .align 2 44; ASM32-NEXT: .csect main[DS],2 45; ASM32-NEXT: .vbyte 4, .main # @main 46; ASM32-NEXT: .vbyte 4, TOC[TC0] 47; ASM32-NEXT: .vbyte 4, 0 48; ASM32-NEXT: .csect ..text..[PR],5 49; ASM32-NEXT: .main: 50; ASM32-NEXT: L..func_begin0: 51; ASM32-NEXT: # %bb.0: # %entry 52; ASM32-NEXT: L..tmp0: 53; ASM32-NEXT: li 4, 0 54; ASM32-NEXT: L..tmp1: 55; ASM32-NEXT: L..tmp2: 56; ASM32-NEXT: li 3, 0 57; ASM32-NEXT: stw 4, -4(1) 58; ASM32-NEXT: blr 59; ASM32-NEXT: L..tmp3: 60; ASM32-NEXT: L..main0: 61; ASM32-NEXT: .vbyte 4, 0x00000000 # Traceback table begin 62; ASM32-NEXT: .byte 0x00 # Version = 0 63; ASM32-NEXT: .byte 0x09 # Language = CPlusPlus 64; ASM32-NEXT: .byte 0x20 # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue 65; ASM32-NEXT: # +HasTraceBackTableOffset, -IsInternalProcedure 66; ASM32-NEXT: # -HasControlledStorage, -IsTOCless 67; ASM32-NEXT: # -IsFloatingPointPresent 68; ASM32-NEXT: # -IsFloatingPointOperationLogOrAbortEnabled 69; ASM32-NEXT: .byte 0x40 # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed 70; ASM32-NEXT: # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved 71; ASM32-NEXT: .byte 0x00 # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0 72; ASM32-NEXT: .byte 0x00 # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0 73; ASM32-NEXT: .byte 0x00 # NumberOfFixedParms = 0 74; ASM32-NEXT: .byte 0x01 # NumberOfFPParms = 0, +HasParmsOnStack 75; ASM32-NEXT: .vbyte 4, L..main0-.main # Function size 76; ASM32-NEXT: .vbyte 2, 0x0004 # Function name len = 4 77; ASM32-NEXT: .byte "main" # Function Name 78; ASM32-NEXT: L..func_end0: 79; ASM32-NEXT: # -- End function 80; ASM32-NEXT: L..sec_end0: 81; ASM32: .dwsect 0x60000 82; ASM32-NEXT: .dwabrev: 83; ASM32-NEXT: .byte 1 # Abbreviation Code 84; ASM32-NEXT: .byte 17 # DW_TAG_compile_unit 85; ASM32-NEXT: .byte 1 # DW_CHILDREN_yes 86; ASM32-NEXT: .byte 37 # DW_AT_producer 87; ASM32-NEXT: .byte 14 # DW_FORM_strp 88; ASM32-NEXT: .byte 19 # DW_AT_language 89; ASM32-NEXT: .byte 5 # DW_FORM_data2 90; ASM32-NEXT: .byte 3 # DW_AT_name 91; ASM32-NEXT: .byte 14 # DW_FORM_strp 92; ASM32-NEXT: .byte 16 # DW_AT_stmt_list 93; ASM32-NEXT: .byte 23 # DW_FORM_sec_offset 94; ASM32-NEXT: .byte 27 # DW_AT_comp_dir 95; ASM32-NEXT: .byte 14 # DW_FORM_strp 96; ASM32-NEXT: .byte 17 # DW_AT_low_pc 97; ASM32-NEXT: .byte 1 # DW_FORM_addr 98; ASM32-NEXT: .byte 18 # DW_AT_high_pc 99; ASM32-NEXT: .byte 6 # DW_FORM_data4 100; ASM32-NEXT: .byte 0 # EOM(1) 101; ASM32-NEXT: .byte 0 # EOM(2) 102; ASM32-NEXT: .byte 2 # Abbreviation Code 103; ASM32-NEXT: .byte 46 # DW_TAG_subprogram 104; ASM32-NEXT: .byte 0 # DW_CHILDREN_no 105; ASM32-NEXT: .byte 17 # DW_AT_low_pc 106; ASM32-NEXT: .byte 1 # DW_FORM_addr 107; ASM32-NEXT: .byte 18 # DW_AT_high_pc 108; ASM32-NEXT: .byte 6 # DW_FORM_data4 109; ASM32-NEXT: .byte 64 # DW_AT_frame_base 110; ASM32-NEXT: .byte 24 # DW_FORM_exprloc 111; ASM32-NEXT: .byte 3 # DW_AT_name 112; ASM32-NEXT: .byte 14 # DW_FORM_strp 113; ASM32-NEXT: .byte 58 # DW_AT_decl_file 114; ASM32-NEXT: .byte 11 # DW_FORM_data1 115; ASM32-NEXT: .byte 59 # DW_AT_decl_line 116; ASM32-NEXT: .byte 11 # DW_FORM_data1 117; ASM32-NEXT: .byte 39 # DW_AT_prototyped 118; ASM32-NEXT: .byte 25 # DW_FORM_flag_present 119; ASM32-NEXT: .byte 73 # DW_AT_type 120; ASM32-NEXT: .byte 19 # DW_FORM_ref4 121; ASM32-NEXT: .byte 63 # DW_AT_external 122; ASM32-NEXT: .byte 25 # DW_FORM_flag_present 123; ASM32-NEXT: .byte 0 # EOM(1) 124; ASM32-NEXT: .byte 0 # EOM(2) 125; ASM32-NEXT: .byte 3 # Abbreviation Code 126; ASM32-NEXT: .byte 36 # DW_TAG_base_type 127; ASM32-NEXT: .byte 0 # DW_CHILDREN_no 128; ASM32-NEXT: .byte 3 # DW_AT_name 129; ASM32-NEXT: .byte 14 # DW_FORM_strp 130; ASM32-NEXT: .byte 62 # DW_AT_encoding 131; ASM32-NEXT: .byte 11 # DW_FORM_data1 132; ASM32-NEXT: .byte 11 # DW_AT_byte_size 133; ASM32-NEXT: .byte 11 # DW_FORM_data1 134; ASM32-NEXT: .byte 0 # EOM(1) 135; ASM32-NEXT: .byte 0 # EOM(2) 136; ASM32-NEXT: .byte 0 # EOM(3) 137; ASM32: .dwsect 0x10000 138; ASM32-NEXT: .dwinfo: 139; ASM32-NEXT: L..cu_begin0: 140; ASM32-NEXT: .vbyte 2, 4 # DWARF version number 141; ASM32-NEXT: .vbyte 4, .dwabrev # Offset Into Abbrev. Section 142; ASM32-NEXT: .byte 4 # Address Size (in bytes) 143; ASM32-NEXT: .byte 1 # Abbrev [1] 0xb:0x38 DW_TAG_compile_unit 144; ASM32-NEXT: .vbyte 4, L..info_string0 # DW_AT_producer 145; ASM32-NEXT: .vbyte 2, 12 # DW_AT_language 146; ASM32-NEXT: .vbyte 4, L..info_string1 # DW_AT_name 147; ASM32-NEXT: .vbyte 4, L..line_table_start0 # DW_AT_stmt_list 148; ASM32-NEXT: .vbyte 4, L..info_string2 # DW_AT_comp_dir 149; ASM32-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc 150; ASM32-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc 151; ASM32-NEXT: .byte 2 # Abbrev [2] 0x26:0x15 DW_TAG_subprogram 152; ASM32-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc 153; ASM32-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc 154; ASM32-NEXT: .byte 1 # DW_AT_frame_base 155; ASM32-NEXT: .byte 81 156; ASM32-NEXT: .vbyte 4, L..info_string3 # DW_AT_name 157; ASM32-NEXT: .byte 1 # DW_AT_decl_file 158; ASM32-NEXT: .byte 1 # DW_AT_decl_line 159; ASM32-NEXT: # DW_AT_prototyped 160; ASM32-NEXT: .vbyte 4, 59 # DW_AT_type 161; ASM32-NEXT: # DW_AT_external 162; ASM32-NEXT: .byte 3 # Abbrev [3] 0x3b:0x7 DW_TAG_base_type 163; ASM32-NEXT: .vbyte 4, L..info_string4 # DW_AT_name 164; ASM32-NEXT: .byte 5 # DW_AT_encoding 165; ASM32-NEXT: .byte 4 # DW_AT_byte_size 166; ASM32-NEXT: .byte 0 # End Of Children Mark 167; ASM32-NEXT: L..debug_info_end0: 168; ASM32: .dwsect 0x70000 169; ASM32-NEXT: .dwstr: 170; ASM32-NEXT: L..info_string0: 171; ASM32-NEXT: .string "clang version 12.0.0" # string offset=0 172; ASM32-NEXT: L..info_string1: 173; ASM32-NEXT: .string "1.c" # string offset=21 174; ASM32-NEXT: L..info_string2: 175; ASM32-NEXT: .string "debug" # string offset=25 176; ASM32-NEXT: L..info_string3: 177; ASM32-NEXT: .string "main" # string offset=31 178; ASM32-NEXT: L..info_string4: 179; ASM32-NEXT: .string "int" # string offset=36 180; ASM32-NEXT: .toc 181; ASM32: .dwsect 0x20000 182; ASM32-NEXT: .dwline: 183; ASM32-NEXT: L..debug_line_0: 184; ASM32-NEXT: .set L..line_table_start0, L..debug_line_0-4 185; ASM32-NEXT: .vbyte 2, 4 186; ASM32-NEXT: .vbyte 4, L..prologue_end0-L..prologue_start0 187; ASM32-NEXT: L..prologue_start0: 188; ASM32-NEXT: .byte 4 189; ASM32-NEXT: .byte 1 190; ASM32-NEXT: .byte 1 191; ASM32-NEXT: .byte -5 192; ASM32-NEXT: .byte 14 193; ASM32-NEXT: .byte 13 194; ASM32-NEXT: .byte 0 195; ASM32-NEXT: .byte 1 196; ASM32-NEXT: .byte 1 197; ASM32-NEXT: .byte 1 198; ASM32-NEXT: .byte 1 199; ASM32-NEXT: .byte 0 200; ASM32-NEXT: .byte 0 201; ASM32-NEXT: .byte 0 202; ASM32-NEXT: .byte 1 203; ASM32-NEXT: .byte 0 204; ASM32-NEXT: .byte 0 205; ASM32-NEXT: .byte 1 206; ASM32-NEXT: .byte "debug" 207; ASM32-NEXT: .byte 0 208; ASM32-NEXT: .byte 0 209; ASM32-NEXT: .byte "1.c" 210; ASM32-NEXT: .byte 0 211; ASM32-NEXT: .byte 1 212; ASM32-NEXT: .byte 0 213; ASM32-NEXT: .byte 0 214; ASM32-NEXT: .byte 0 215; ASM32-NEXT: L..prologue_end0: 216; ASM32-NEXT: .byte 0 # Set address to L..tmp0 217; ASM32-NEXT: .byte 5 218; ASM32-NEXT: .byte 2 219; ASM32-NEXT: .vbyte 4, L..tmp0 220; ASM32-NEXT: .byte 19 # Start sequence 221; ASM32-NEXT: .byte 5 222; ASM32-NEXT: .byte 3 223; ASM32-NEXT: .byte 10 224; ASM32-NEXT: .byte 0 # Set address to L..tmp2 225; ASM32-NEXT: .byte 5 226; ASM32-NEXT: .byte 2 227; ASM32-NEXT: .vbyte 4, L..tmp2 228; ASM32-NEXT: .byte 3 # Advance line 1 229; ASM32-NEXT: .byte 1 230; ASM32-NEXT: .byte 1 231; ASM32-NEXT: .byte 0 # Set address to L..func_end0 232; ASM32-NEXT: .byte 5 233; ASM32-NEXT: .byte 2 234; ASM32-NEXT: .vbyte 4, L..func_end0 235; ASM32-NEXT: .byte 0 # End sequence 236; ASM32-NEXT: .byte 1 237; ASM32-NEXT: .byte 1 238; ASM32-NEXT: L..debug_line_end0: 239 240; ASM64: .file "1.c" 241; ASM64-NEXT: .csect ..text..[PR],5 242; ASM64-NEXT: .rename ..text..[PR],"" 243; ASM64-NEXT: .machine "COM" 244; ASM64-NEXT: .globl main[DS] # -- Begin function main 245; ASM64-NEXT: .globl .main 246; ASM64-NEXT: .align 2 247; ASM64-NEXT: .csect main[DS],3 248; ASM64-NEXT: .vbyte 8, .main # @main 249; ASM64-NEXT: .vbyte 8, TOC[TC0] 250; ASM64-NEXT: .vbyte 8, 0 251; ASM64-NEXT: .csect ..text..[PR],5 252; ASM64-NEXT: .main: 253; ASM64-NEXT: L..func_begin0: 254; ASM64-NEXT: # %bb.0: # %entry 255; ASM64-NEXT: L..tmp0: 256; ASM64-NEXT: li 4, 0 257; ASM64-NEXT: L..tmp1: 258; ASM64-NEXT: L..tmp2: 259; ASM64-NEXT: li 3, 0 260; ASM64-NEXT: stw 4, -4(1) 261; ASM64-NEXT: blr 262; ASM64-NEXT: L..tmp3: 263; ASM64-NEXT: L..main0: 264; ASM64-NEXT: .vbyte 4, 0x00000000 # Traceback table begin 265; ASM64-NEXT: .byte 0x00 # Version = 0 266; ASM64-NEXT: .byte 0x09 # Language = CPlusPlus 267; ASM64-NEXT: .byte 0x20 # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue 268; ASM64-NEXT: # +HasTraceBackTableOffset, -IsInternalProcedure 269; ASM64-NEXT: # -HasControlledStorage, -IsTOCless 270; ASM64-NEXT: # -IsFloatingPointPresent 271; ASM64-NEXT: # -IsFloatingPointOperationLogOrAbortEnabled 272; ASM64-NEXT: .byte 0x40 # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed 273; ASM64-NEXT: # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved 274; ASM64-NEXT: .byte 0x00 # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0 275; ASM64-NEXT: .byte 0x00 # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0 276; ASM64-NEXT: .byte 0x00 # NumberOfFixedParms = 0 277; ASM64-NEXT: .byte 0x01 # NumberOfFPParms = 0, +HasParmsOnStack 278; ASM64-NEXT: .vbyte 4, L..main0-.main # Function size 279; ASM64-NEXT: .vbyte 2, 0x0004 # Function name len = 4 280; ASM64-NEXT: .byte "main" # Function Name 281; ASM64-NEXT: L..func_end0: 282; ASM64-NEXT: # -- End function 283; ASM64-NEXT: L..sec_end0: 284; ASM64: .dwsect 0x60000 285; ASM64-NEXT: .dwabrev: 286; ASM64-NEXT: .byte 1 # Abbreviation Code 287; ASM64-NEXT: .byte 17 # DW_TAG_compile_unit 288; ASM64-NEXT: .byte 1 # DW_CHILDREN_yes 289; ASM64-NEXT: .byte 37 # DW_AT_producer 290; ASM64-NEXT: .byte 14 # DW_FORM_strp 291; ASM64-NEXT: .byte 19 # DW_AT_language 292; ASM64-NEXT: .byte 5 # DW_FORM_data2 293; ASM64-NEXT: .byte 3 # DW_AT_name 294; ASM64-NEXT: .byte 14 # DW_FORM_strp 295; ASM64-NEXT: .byte 16 # DW_AT_stmt_list 296; ASM64-NEXT: .byte 23 # DW_FORM_sec_offset 297; ASM64-NEXT: .byte 27 # DW_AT_comp_dir 298; ASM64-NEXT: .byte 14 # DW_FORM_strp 299; ASM64-NEXT: .byte 17 # DW_AT_low_pc 300; ASM64-NEXT: .byte 1 # DW_FORM_addr 301; ASM64-NEXT: .byte 18 # DW_AT_high_pc 302; ASM64-NEXT: .byte 6 # DW_FORM_data4 303; ASM64-NEXT: .byte 0 # EOM(1) 304; ASM64-NEXT: .byte 0 # EOM(2) 305; ASM64-NEXT: .byte 2 # Abbreviation Code 306; ASM64-NEXT: .byte 46 # DW_TAG_subprogram 307; ASM64-NEXT: .byte 0 # DW_CHILDREN_no 308; ASM64-NEXT: .byte 17 # DW_AT_low_pc 309; ASM64-NEXT: .byte 1 # DW_FORM_addr 310; ASM64-NEXT: .byte 18 # DW_AT_high_pc 311; ASM64-NEXT: .byte 6 # DW_FORM_data4 312; ASM64-NEXT: .byte 64 # DW_AT_frame_base 313; ASM64-NEXT: .byte 24 # DW_FORM_exprloc 314; ASM64-NEXT: .byte 3 # DW_AT_name 315; ASM64-NEXT: .byte 14 # DW_FORM_strp 316; ASM64-NEXT: .byte 58 # DW_AT_decl_file 317; ASM64-NEXT: .byte 11 # DW_FORM_data1 318; ASM64-NEXT: .byte 59 # DW_AT_decl_line 319; ASM64-NEXT: .byte 11 # DW_FORM_data1 320; ASM64-NEXT: .byte 39 # DW_AT_prototyped 321; ASM64-NEXT: .byte 25 # DW_FORM_flag_present 322; ASM64-NEXT: .byte 73 # DW_AT_type 323; ASM64-NEXT: .byte 19 # DW_FORM_ref4 324; ASM64-NEXT: .byte 63 # DW_AT_external 325; ASM64-NEXT: .byte 25 # DW_FORM_flag_present 326; ASM64-NEXT: .byte 0 # EOM(1) 327; ASM64-NEXT: .byte 0 # EOM(2) 328; ASM64-NEXT: .byte 3 # Abbreviation Code 329; ASM64-NEXT: .byte 36 # DW_TAG_base_type 330; ASM64-NEXT: .byte 0 # DW_CHILDREN_no 331; ASM64-NEXT: .byte 3 # DW_AT_name 332; ASM64-NEXT: .byte 14 # DW_FORM_strp 333; ASM64-NEXT: .byte 62 # DW_AT_encoding 334; ASM64-NEXT: .byte 11 # DW_FORM_data1 335; ASM64-NEXT: .byte 11 # DW_AT_byte_size 336; ASM64-NEXT: .byte 11 # DW_FORM_data1 337; ASM64-NEXT: .byte 0 # EOM(1) 338; ASM64-NEXT: .byte 0 # EOM(2) 339; ASM64-NEXT: .byte 0 # EOM(3) 340; ASM64: .dwsect 0x10000 341; ASM64-NEXT: .dwinfo: 342; ASM64-NEXT: L..cu_begin0: 343; ASM64-NEXT: .vbyte 2, 4 # DWARF version number 344; ASM64-NEXT: .vbyte 8, .dwabrev # Offset Into Abbrev. Section 345; ASM64-NEXT: .byte 8 # Address Size (in bytes) 346; ASM64-NEXT: .byte 1 # Abbrev [1] 0x17:0x58 DW_TAG_compile_unit 347; ASM64-NEXT: .vbyte 8, L..info_string0 # DW_AT_producer 348; ASM64-NEXT: .vbyte 2, 12 # DW_AT_language 349; ASM64-NEXT: .vbyte 8, L..info_string1 # DW_AT_name 350; ASM64-NEXT: .vbyte 8, L..line_table_start0 # DW_AT_stmt_list 351; ASM64-NEXT: .vbyte 8, L..info_string2 # DW_AT_comp_dir 352; ASM64-NEXT: .vbyte 8, L..func_begin0 # DW_AT_low_pc 353; ASM64-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc 354; ASM64-NEXT: .byte 2 # Abbrev [2] 0x46:0x1d DW_TAG_subprogram 355; ASM64-NEXT: .vbyte 8, L..func_begin0 # DW_AT_low_pc 356; ASM64-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc 357; ASM64-NEXT: .byte 1 # DW_AT_frame_base 358; ASM64-NEXT: .byte 81 359; ASM64-NEXT: .vbyte 8, L..info_string3 # DW_AT_name 360; ASM64-NEXT: .byte 1 # DW_AT_decl_file 361; ASM64-NEXT: .byte 1 # DW_AT_decl_line 362; ASM64-NEXT: # DW_AT_prototyped 363; ASM64-NEXT: .vbyte 4, 99 # DW_AT_type 364; ASM64-NEXT: # DW_AT_external 365; ASM64-NEXT: .byte 3 # Abbrev [3] 0x63:0xb DW_TAG_base_type 366; ASM64-NEXT: .vbyte 8, L..info_string4 # DW_AT_name 367; ASM64-NEXT: .byte 5 # DW_AT_encoding 368; ASM64-NEXT: .byte 4 # DW_AT_byte_size 369; ASM64-NEXT: .byte 0 # End Of Children Mark 370; ASM64-NEXT: L..debug_info_end0: 371; ASM64: .dwsect 0x70000 372; ASM64-NEXT: .dwstr: 373; ASM64-NEXT: L..info_string0: 374; ASM64-NEXT: .string "clang version 12.0.0" # string offset=0 375; ASM64-NEXT: L..info_string1: 376; ASM64-NEXT: .string "1.c" # string offset=21 377; ASM64-NEXT: L..info_string2: 378; ASM64-NEXT: .string "debug" # string offset=25 379; ASM64-NEXT: L..info_string3: 380; ASM64-NEXT: .string "main" # string offset=31 381; ASM64-NEXT: L..info_string4: 382; ASM64-NEXT: .string "int" # string offset=36 383; ASM64-NEXT: .toc 384; ASM64: .dwsect 0x20000 385; ASM64-NEXT: .dwline: 386; ASM64-NEXT: L..debug_line_0: 387; ASM64-NEXT: .set L..line_table_start0, L..debug_line_0-12 388; ASM64-NEXT: .vbyte 2, 4 389; ASM64-NEXT: .vbyte 8, L..prologue_end0-L..prologue_start0 390; ASM64-NEXT: L..prologue_start0: 391; ASM64-NEXT: .byte 4 392; ASM64-NEXT: .byte 1 393; ASM64-NEXT: .byte 1 394; ASM64-NEXT: .byte -5 395; ASM64-NEXT: .byte 14 396; ASM64-NEXT: .byte 13 397; ASM64-NEXT: .byte 0 398; ASM64-NEXT: .byte 1 399; ASM64-NEXT: .byte 1 400; ASM64-NEXT: .byte 1 401; ASM64-NEXT: .byte 1 402; ASM64-NEXT: .byte 0 403; ASM64-NEXT: .byte 0 404; ASM64-NEXT: .byte 0 405; ASM64-NEXT: .byte 1 406; ASM64-NEXT: .byte 0 407; ASM64-NEXT: .byte 0 408; ASM64-NEXT: .byte 1 409; ASM64-NEXT: .byte "debug" 410; ASM64-NEXT: .byte 0 411; ASM64-NEXT: .byte 0 412; ASM64-NEXT: .byte "1.c" 413; ASM64-NEXT: .byte 0 414; ASM64-NEXT: .byte 1 415; ASM64-NEXT: .byte 0 416; ASM64-NEXT: .byte 0 417; ASM64-NEXT: .byte 0 418; ASM64-NEXT: L..prologue_end0: 419; ASM64-NEXT: .byte 0 # Set address to L..tmp0 420; ASM64-NEXT: .byte 9 421; ASM64-NEXT: .byte 2 422; ASM64-NEXT: .vbyte 8, L..tmp0 423; ASM64-NEXT: .byte 19 # Start sequence 424; ASM64-NEXT: .byte 5 425; ASM64-NEXT: .byte 3 426; ASM64-NEXT: .byte 10 427; ASM64-NEXT: .byte 0 # Set address to L..tmp2 428; ASM64-NEXT: .byte 9 429; ASM64-NEXT: .byte 2 430; ASM64-NEXT: .vbyte 8, L..tmp2 431; ASM64-NEXT: .byte 3 # Advance line 1 432; ASM64-NEXT: .byte 1 433; ASM64-NEXT: .byte 1 434; ASM64-NEXT: .byte 0 # Set address to L..func_end0 435; ASM64-NEXT: .byte 9 436; ASM64-NEXT: .byte 2 437; ASM64-NEXT: .vbyte 8, L..func_end0 438; ASM64-NEXT: .byte 0 # End sequence 439; ASM64-NEXT: .byte 1 440; ASM64-NEXT: .byte 1 441; ASM64-NEXT: L..debug_line_end0: 442 443; DWARF32: : file format aixcoff-rs6000 444; DWARF32: .debug_abbrev contents: 445; DWARF32-NEXT: Abbrev table for offset: 0x00000000 446; DWARF32-NEXT: [1] DW_TAG_compile_unit DW_CHILDREN_yes 447; DWARF32-NEXT: DW_AT_producer DW_FORM_string 448; DWARF32-NEXT: DW_AT_language DW_FORM_data2 449; DWARF32-NEXT: DW_AT_name DW_FORM_string 450; DWARF32-NEXT: DW_AT_stmt_list DW_FORM_sec_offset 451; DWARF32-NEXT: DW_AT_comp_dir DW_FORM_string 452; DWARF32-NEXT: DW_AT_low_pc DW_FORM_addr 453; DWARF32-NEXT: DW_AT_high_pc DW_FORM_data4 454; DWARF32: [2] DW_TAG_subprogram DW_CHILDREN_no 455; DWARF32-NEXT: DW_AT_low_pc DW_FORM_addr 456; DWARF32-NEXT: DW_AT_high_pc DW_FORM_data4 457; DWARF32-NEXT: DW_AT_frame_base DW_FORM_exprloc 458; DWARF32-NEXT: DW_AT_name DW_FORM_string 459; DWARF32-NEXT: DW_AT_decl_file DW_FORM_data1 460; DWARF32-NEXT: DW_AT_decl_line DW_FORM_data1 461; DWARF32-NEXT: DW_AT_prototyped DW_FORM_flag_present 462; DWARF32-NEXT: DW_AT_type DW_FORM_ref4 463; DWARF32-NEXT: DW_AT_external DW_FORM_flag_present 464; DWARF32: [3] DW_TAG_base_type DW_CHILDREN_no 465; DWARF32-NEXT: DW_AT_name DW_FORM_string 466; DWARF32-NEXT: DW_AT_encoding DW_FORM_data1 467; DWARF32-NEXT: DW_AT_byte_size DW_FORM_data1 468; DWARF32: .debug_info contents: 469; DWARF32-NEXT: 0x00000000: Compile Unit: length = 0x00000053, format = DWARF32, version = 0x0004, abbr_offset = 0x0000, addr_size = 0x04 (next unit at 0x00000057) 470; DWARF32: 0x0000000b: DW_TAG_compile_unit 471; DWARF32-NEXT: DW_AT_producer ("clang version 12.0.0") 472; DWARF32-NEXT: DW_AT_language (DW_LANG_C99) 473; DWARF32-NEXT: DW_AT_name ("1.c") 474; DWARF32-NEXT: DW_AT_stmt_list (0x00000000) 475; DWARF32-NEXT: DW_AT_comp_dir ("debug") 476; DWARF32-NEXT: DW_AT_low_pc (0x00000000) 477; DWARF32-NEXT: DW_AT_high_pc (0x00000026) 478; DWARF32: 0x00000039: DW_TAG_subprogram 479; DWARF32-NEXT: DW_AT_low_pc (0x00000000) 480; DWARF32-NEXT: DW_AT_high_pc (0x00000026) 481; DWARF32-NEXT: DW_AT_frame_base (DW_OP_reg1 R1) 482; DWARF32-NEXT: DW_AT_name ("main") 483; DWARF32-NEXT: DW_AT_decl_file ("debug{{[/\\]}}1.c") 484; DWARF32-NEXT: DW_AT_decl_line (1) 485; DWARF32-NEXT: DW_AT_prototyped (true) 486; DWARF32-NEXT: DW_AT_type (0x0000004f "int") 487; DWARF32-NEXT: DW_AT_external (true) 488; DWARF32: 0x0000004f: DW_TAG_base_type 489; DWARF32-NEXT: DW_AT_name ("int") 490; DWARF32-NEXT: DW_AT_encoding (DW_ATE_signed) 491; DWARF32-NEXT: DW_AT_byte_size (0x04) 492; DWARF32: 0x00000056: NULL 493; DWARF32: .debug_line contents: 494; DWARF32-NEXT: debug_line[0x00000000] 495; DWARF32-NEXT: Line table prologue: 496; DWARF32-NEXT: total_length: 0x00000032 497; DWARF32-NEXT: format: DWARF32 498; DWARF32-NEXT: version: 4 499; DWARF32-NEXT: prologue_length: 0x0000001b 500; DWARF32-NEXT: min_inst_length: 4 501; DWARF32-NEXT: max_ops_per_inst: 1 502; DWARF32-NEXT: default_is_stmt: 1 503; DWARF32-NEXT: line_base: -5 504; DWARF32-NEXT: line_range: 14 505; DWARF32-NEXT: opcode_base: 13 506; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_copy] = 0 507; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_advance_pc] = 1 508; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_advance_line] = 1 509; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_file] = 1 510; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_column] = 1 511; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_negate_stmt] = 0 512; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_basic_block] = 0 513; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_const_add_pc] = 0 514; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1 515; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_prologue_end] = 0 516; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0 517; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_isa] = 1 518; DWARF32-NEXT: file_names[ 1]: 519; DWARF32-NEXT: name: "1.c" 520; DWARF32-NEXT: dir_index: 0 521; DWARF32-NEXT: mod_time: 0x00000000 522; DWARF32-NEXT: length: 0x00000000 523; DWARF32: Address Line Column File ISA Discriminator OpIndex Flags 524; DWARF32-NEXT: ------------------ ------ ------ ------ --- ------------- ------- ------------- 525; DWARF32-NEXT: 0x0000000000000000 2 0 1 0 0 0 is_stmt 526; DWARF32-NEXT: 0x0000000000000004 3 3 1 0 0 0 is_stmt prologue_end 527; DWARF32-NEXT: 0x0000000000000024 3 3 1 0 0 0 is_stmt end_sequence 528