1; RUN: llc -mtriple=nvptx64-nvidia-cuda < %s | FileCheck %s 2; RUN: %if ptxas %{ llc -mtriple=nvptx64-nvidia-cuda < %s | %ptxas-verify %} 3 4; CHECK: .target sm_{{[0-9]+}}, debug 5 6; CHECK: .extern .func (.param .b32 func_retval0) _ZN1A3fooEv 7; CHECK: ( 8; CHECK: .param .b64 _ZN1A3fooEv_param_0 9; CHECK: ) 10 11%struct.A = type { i32 (...)**, i32 } 12 13; CHECK: .visible .func (.param .b32 func_retval0) _Z3bari( 14; CHECK: { 15; CHECK: .loc [[CU1:[0-9]+]] 1 0 16; CHECK: $L__func_begin0: 17; CHECK: .loc [[CU1]] 1 0 18 19; CHECK: //DEBUG_VALUE: bar:b <- {{[0-9]+}} 20; CHECK: //DEBUG_VALUE: bar:b <- {{[0-9]+}} 21; CHECK: .loc [[CU1]] 2 0 22; CHECK: ret; 23; CHECK: } 24 25; Function Attrs: nounwind 26define i32 @_Z3bari(i32 %b) #0 !dbg !4 { 27entry: 28 %b.addr = alloca i32, align 4 29 store i32 %b, i32* %b.addr, align 4 30 call void @llvm.dbg.value(metadata i32 0, metadata !21, metadata !DIExpression()), !dbg !22 31 %0 = load i32, i32* %b.addr, align 4, !dbg !23 32 call void @llvm.dbg.value(metadata i32 1, metadata !21, metadata !DIExpression()), !dbg !22 33 %add = add nsw i32 %0, 4, !dbg !23 34 ret i32 %add, !dbg !23 35} 36 37; Function Attrs: nounwind readnone 38declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 39 40declare void @llvm.dbg.value(metadata, metadata, metadata) #1 41 42; CHECK: .visible .func _Z3baz1A( 43; CHECK: { 44; CHECK: .loc [[CU2:[0-9]+]] 6 0 45; CHECK: $L__func_begin1: 46; CHECK: .loc [[CU2]] 6 0 47; CHECK-NOT: //DEBUG_VALUE: baz:z 48; CHECK: //DEBUG_VALUE: baz:z <- undef 49; CHECK: .loc [[CU2]] 10 0 50; CHECK: ret; 51; CHECK: } 52 53define void @_Z3baz1A(%struct.A* %a) #2 !dbg !14 { 54entry: 55 %z = alloca i32, align 4 56 call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !24, metadata !DIExpression(DW_OP_deref)), !dbg !25 57 call void @llvm.dbg.declare(metadata i32* %z, metadata !26, metadata !DIExpression()), !dbg !27 58 store i32 2, i32* %z, align 4, !dbg !27 59 %var = getelementptr inbounds %struct.A, %struct.A* %a, i32 0, i32 1, !dbg !28 60 %0 = load i32, i32* %var, align 4, !dbg !28 61 %cmp = icmp sgt i32 %0, 2, !dbg !28 62 br i1 %cmp, label %if.then, label %if.end, !dbg !28 63 64if.then: ; preds = %entry 65 %1 = load i32, i32* %z, align 4, !dbg !30 66 %inc = add nsw i32 %1, 1, !dbg !30 67 store i32 %inc, i32* %z, align 4, !dbg !30 68 br label %if.end, !dbg !30 69 70if.end: ; preds = %if.then, %entry 71 %call = call signext i8 @_ZN1A3fooEv(%struct.A* %a), !dbg !31 72 %conv = sext i8 %call to i32, !dbg !31 73 %cmp1 = icmp eq i32 %conv, 97, !dbg !31 74 br i1 %cmp1, label %if.then2, label %if.end4, !dbg !31 75 76if.then2: ; preds = %if.end 77 %2 = load i32, i32* %z, align 4, !dbg !33 78 %inc3 = add nsw i32 %2, 1, !dbg !33 79 store i32 %inc3, i32* %z, align 4, !dbg !33 80 br label %if.end4, !dbg !33 81 82if.end4: ; preds = %if.then2, %if.end 83 ret void, !dbg !34 84} 85 86; CHECK-DAG: .file [[CU1]] "/llvm_cmake_gcc{{/|\\\\}}debug-loc-offset1.cc" 87; CHECK-DAG: .file [[CU2]] "/llvm_cmake_gcc{{/|\\\\}}debug-loc-offset2.cc" 88 89declare signext i8 @_ZN1A3fooEv(%struct.A*) #2 90 91attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 92attributes #1 = { nounwind readnone } 93attributes #2 = { "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 94 95!llvm.dbg.cu = !{!0, !9} 96!llvm.module.flags = !{!18, !19} 97!llvm.ident = !{!20, !20} 98 99!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 (210479)", isOptimized: false, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !2, globals: !2, imports: !2, nameTableKind: None) 100!1 = !DIFile(filename: "debug-loc-offset1.cc", directory: "/llvm_cmake_gcc") 101!2 = !{} 102!4 = distinct !DISubprogram(name: "bar", linkageName: "_Z3bari", line: 1, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !0, scopeLine: 1, file: !1, scope: !5, type: !6, retainedNodes: !35) 103!5 = !DIFile(filename: "debug-loc-offset1.cc", directory: "/llvm_cmake_gcc") 104!6 = !DISubroutineType(types: !7) 105!7 = !{!8, !8} 106!8 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) 107!9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.5.0 (210479)", isOptimized: false, emissionKind: FullDebug, file: !10, enums: !2, retainedTypes: !11, globals: !2, imports: !2, nameTableKind: None) 108!10 = !DIFile(filename: "debug-loc-offset2.cc", directory: "/llvm_cmake_gcc") 109!11 = !{!12} 110!12 = !DICompositeType(tag: DW_TAG_structure_type, name: "A", line: 1, flags: DIFlagFwdDecl, file: !10, identifier: "_ZTS1A") 111!14 = distinct !DISubprogram(name: "baz", linkageName: "_Z3baz1A", line: 6, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, unit: !9, scopeLine: 6, file: !10, scope: !15, type: !16, retainedNodes: !36) 112!15 = !DIFile(filename: "debug-loc-offset2.cc", directory: "/llvm_cmake_gcc") 113!16 = !DISubroutineType(types: !17) 114!17 = !{null, !12} 115!18 = !{i32 2, !"Dwarf Version", i32 4} 116!19 = !{i32 2, !"Debug Info Version", i32 3} 117!20 = !{!"clang version 3.5.0 (210479)"} 118!21 = !DILocalVariable(name: "b", line: 1, arg: 1, scope: !4, file: !5, type: !8) 119!22 = !DILocation(line: 1, scope: !4) 120!23 = !DILocation(line: 2, scope: !4) 121!24 = !DILocalVariable(name: "a", line: 6, arg: 1, scope: !14, file: !15, type: !12) 122!25 = !DILocation(line: 6, scope: !14) 123!26 = !DILocalVariable(name: "z", line: 7, scope: !14, file: !15, type: !8) 124!27 = !DILocation(line: 7, scope: !14) 125!28 = !DILocation(line: 8, scope: !29) 126!29 = distinct !DILexicalBlock(line: 8, column: 0, file: !10, scope: !14) 127!30 = !DILocation(line: 9, scope: !29) 128!31 = !DILocation(line: 10, scope: !32) 129!32 = distinct !DILexicalBlock(line: 10, column: 0, file: !10, scope: !14) 130!33 = !DILocation(line: 11, scope: !32) 131!34 = !DILocation(line: 12, scope: !14) 132!35 = !{!21} 133!36 = !{!24, !26} 134 135; CHECK: .section .debug_abbrev 136; CHECK-NEXT: { 137; CHECK-NEXT: .b8 1 // Abbreviation Code 138; CHECK-NEXT: .b8 17 // DW_TAG_compile_unit 139; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes 140; CHECK-NEXT: .b8 37 // DW_AT_producer 141; CHECK-NEXT: .b8 8 // DW_FORM_string 142; CHECK-NEXT: .b8 19 // DW_AT_language 143; CHECK-NEXT: .b8 5 // DW_FORM_data2 144; CHECK-NEXT: .b8 3 // DW_AT_name 145; CHECK-NEXT: .b8 8 // DW_FORM_string 146; CHECK-NEXT: .b8 16 // DW_AT_stmt_list 147; CHECK-NEXT: .b8 6 // DW_FORM_data4 148; CHECK-NEXT: .b8 27 // DW_AT_comp_dir 149; CHECK-NEXT: .b8 8 // DW_FORM_string 150; CHECK-NEXT: .b8 17 // DW_AT_low_pc 151; CHECK-NEXT: .b8 1 // DW_FORM_addr 152; CHECK-NEXT: .b8 18 // DW_AT_high_pc 153; CHECK-NEXT: .b8 1 // DW_FORM_addr 154; CHECK-NEXT: .b8 0 // EOM(1) 155; CHECK-NEXT: .b8 0 // EOM(2) 156; CHECK-NEXT: .b8 2 // Abbreviation Code 157; CHECK-NEXT: .b8 19 // DW_TAG_structure_type 158; CHECK-NEXT: .b8 0 // DW_CHILDREN_no 159; CHECK-NEXT: .b8 3 // DW_AT_name 160; CHECK-NEXT: .b8 8 // DW_FORM_string 161; CHECK-NEXT: .b8 60 // DW_AT_declaration 162; CHECK-NEXT: .b8 12 // DW_FORM_flag 163; CHECK-NEXT: .b8 0 // EOM(1) 164; CHECK-NEXT: .b8 0 // EOM(2) 165; CHECK-NEXT: .b8 3 // Abbreviation Code 166; CHECK-NEXT: .b8 46 // DW_TAG_subprogram 167; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes 168; CHECK-NEXT: .b8 17 // DW_AT_low_pc 169; CHECK-NEXT: .b8 1 // DW_FORM_addr 170; CHECK-NEXT: .b8 18 // DW_AT_high_pc 171; CHECK-NEXT: .b8 1 // DW_FORM_addr 172; CHECK-NEXT: .b8 64 // DW_AT_frame_base 173; CHECK-NEXT: .b8 10 // DW_FORM_block1 174; CHECK-NEXT: .b8 135 // DW_AT_MIPS_linkage_name 175; CHECK-NEXT: .b8 64 176; CHECK-NEXT: .b8 8 // DW_FORM_string 177; CHECK-NEXT: .b8 3 // DW_AT_name 178; CHECK-NEXT: .b8 8 // DW_FORM_string 179; CHECK-NEXT: .b8 58 // DW_AT_decl_file 180; CHECK-NEXT: .b8 11 // DW_FORM_data1 181; CHECK-NEXT: .b8 59 // DW_AT_decl_line 182; CHECK-NEXT: .b8 11 // DW_FORM_data1 183; CHECK-NEXT: .b8 63 // DW_AT_external 184; CHECK-NEXT: .b8 12 // DW_FORM_flag 185; CHECK-NEXT: .b8 0 // EOM(1) 186; CHECK-NEXT: .b8 0 // EOM(2) 187; CHECK-NEXT: .b8 4 // Abbreviation Code 188; CHECK-NEXT: .b8 5 // DW_TAG_formal_parameter 189; CHECK-NEXT: .b8 0 // DW_CHILDREN_no 190; CHECK-NEXT: .b8 3 // DW_AT_name 191; CHECK-NEXT: .b8 8 // DW_FORM_string 192; CHECK-NEXT: .b8 58 // DW_AT_decl_file 193; CHECK-NEXT: .b8 11 // DW_FORM_data1 194; CHECK-NEXT: .b8 59 // DW_AT_decl_line 195; CHECK-NEXT: .b8 11 // DW_FORM_data1 196; CHECK-NEXT: .b8 73 // DW_AT_type 197; CHECK-NEXT: .b8 19 // DW_FORM_ref4 198; CHECK-NEXT: .b8 0 // EOM(1) 199; CHECK-NEXT: .b8 0 // EOM(2) 200; CHECK-NEXT: .b8 5 // Abbreviation Code 201; CHECK-NEXT: .b8 52 // DW_TAG_variable 202; CHECK-NEXT: .b8 0 // DW_CHILDREN_no 203; CHECK-NEXT: .b8 3 // DW_AT_name 204; CHECK-NEXT: .b8 8 // DW_FORM_string 205; CHECK-NEXT: .b8 58 // DW_AT_decl_file 206; CHECK-NEXT: .b8 11 // DW_FORM_data1 207; CHECK-NEXT: .b8 59 // DW_AT_decl_line 208; CHECK-NEXT: .b8 11 // DW_FORM_data1 209; CHECK-NEXT: .b8 73 // DW_AT_type 210; CHECK-NEXT: .b8 16 // DW_FORM_ref_addr 211; CHECK-NEXT: .b8 0 // EOM(1) 212; CHECK-NEXT: .b8 0 // EOM(2) 213; CHECK-NEXT: .b8 6 // Abbreviation Code 214; CHECK-NEXT: .b8 46 // DW_TAG_subprogram 215; CHECK-NEXT: .b8 1 // DW_CHILDREN_yes 216; CHECK-NEXT: .b8 17 // DW_AT_low_pc 217; CHECK-NEXT: .b8 1 // DW_FORM_addr 218; CHECK-NEXT: .b8 18 // DW_AT_high_pc 219; CHECK-NEXT: .b8 1 // DW_FORM_addr 220; CHECK-NEXT: .b8 64 // DW_AT_frame_base 221; CHECK-NEXT: .b8 10 // DW_FORM_block1 222; CHECK-NEXT: .b8 135 // DW_AT_MIPS_linkage_name 223; CHECK-NEXT: .b8 64 224; CHECK-NEXT: .b8 8 // DW_FORM_string 225; CHECK-NEXT: .b8 3 // DW_AT_name 226; CHECK-NEXT: .b8 8 // DW_FORM_string 227; CHECK-NEXT: .b8 58 // DW_AT_decl_file 228; CHECK-NEXT: .b8 11 // DW_FORM_data1 229; CHECK-NEXT: .b8 59 // DW_AT_decl_line 230; CHECK-NEXT: .b8 11 // DW_FORM_data1 231; CHECK-NEXT: .b8 73 // DW_AT_type 232; CHECK-NEXT: .b8 19 // DW_FORM_ref4 233; CHECK-NEXT: .b8 63 // DW_AT_external 234; CHECK-NEXT: .b8 12 // DW_FORM_flag 235; CHECK-NEXT: .b8 0 // EOM(1) 236; CHECK-NEXT: .b8 0 // EOM(2) 237; CHECK-NEXT: .b8 7 // Abbreviation Code 238; CHECK-NEXT: .b8 36 // DW_TAG_base_type 239; CHECK-NEXT: .b8 0 // DW_CHILDREN_no 240; CHECK-NEXT: .b8 3 // DW_AT_name 241; CHECK-NEXT: .b8 8 // DW_FORM_string 242; CHECK-NEXT: .b8 62 // DW_AT_encoding 243; CHECK-NEXT: .b8 11 // DW_FORM_data1 244; CHECK-NEXT: .b8 11 // DW_AT_byte_size 245; CHECK-NEXT: .b8 11 // DW_FORM_data1 246; CHECK-NEXT: .b8 0 // EOM(1) 247; CHECK-NEXT: .b8 0 // EOM(2) 248; CHECK-NEXT: .b8 0 // EOM(3) 249; CHECK-NEXT: } 250; CHECK-NEXT: .section .debug_info 251; CHECK-NEXT: { 252; CHECK-NEXT: .b32 159 // Length of Unit 253; CHECK-NEXT: .b8 2 // DWARF version number 254; CHECK-NEXT: .b8 0 255; CHECK-NEXT: .b32 .debug_abbrev // Offset Into Abbrev. Section 256; CHECK-NEXT: .b8 8 // Address Size (in bytes) 257; CHECK-NEXT: .b8 1 // Abbrev [1] 0xb:0x98 DW_TAG_compile_unit 258; CHECK-NEXT: .b8 99 // DW_AT_producer 259; CHECK-NEXT: .b8 108 260; CHECK-NEXT: .b8 97 261; CHECK-NEXT: .b8 110 262; CHECK-NEXT: .b8 103 263; CHECK-NEXT: .b8 32 264; CHECK-NEXT: .b8 118 265; CHECK-NEXT: .b8 101 266; CHECK-NEXT: .b8 114 267; CHECK-NEXT: .b8 115 268; CHECK-NEXT: .b8 105 269; CHECK-NEXT: .b8 111 270; CHECK-NEXT: .b8 110 271; CHECK-NEXT: .b8 32 272; CHECK-NEXT: .b8 51 273; CHECK-NEXT: .b8 46 274; CHECK-NEXT: .b8 53 275; CHECK-NEXT: .b8 46 276; CHECK-NEXT: .b8 48 277; CHECK-NEXT: .b8 32 278; CHECK-NEXT: .b8 40 279; CHECK-NEXT: .b8 50 280; CHECK-NEXT: .b8 49 281; CHECK-NEXT: .b8 48 282; CHECK-NEXT: .b8 52 283; CHECK-NEXT: .b8 55 284; CHECK-NEXT: .b8 57 285; CHECK-NEXT: .b8 41 286; CHECK-NEXT: .b8 0 287; CHECK-NEXT: .b8 4 // DW_AT_language 288; CHECK-NEXT: .b8 0 289; CHECK-NEXT: .b8 100 // DW_AT_name 290; CHECK-NEXT: .b8 101 291; CHECK-NEXT: .b8 98 292; CHECK-NEXT: .b8 117 293; CHECK-NEXT: .b8 103 294; CHECK-NEXT: .b8 45 295; CHECK-NEXT: .b8 108 296; CHECK-NEXT: .b8 111 297; CHECK-NEXT: .b8 99 298; CHECK-NEXT: .b8 45 299; CHECK-NEXT: .b8 111 300; CHECK-NEXT: .b8 102 301; CHECK-NEXT: .b8 102 302; CHECK-NEXT: .b8 115 303; CHECK-NEXT: .b8 101 304; CHECK-NEXT: .b8 116 305; CHECK-NEXT: .b8 50 306; CHECK-NEXT: .b8 46 307; CHECK-NEXT: .b8 99 308; CHECK-NEXT: .b8 99 309; CHECK-NEXT: .b8 0 310; CHECK-NEXT: .b32 .debug_line // DW_AT_stmt_list 311; CHECK-NEXT: .b8 47 // DW_AT_comp_dir 312; CHECK-NEXT: .b8 108 313; CHECK-NEXT: .b8 108 314; CHECK-NEXT: .b8 118 315; CHECK-NEXT: .b8 109 316; CHECK-NEXT: .b8 95 317; CHECK-NEXT: .b8 99 318; CHECK-NEXT: .b8 109 319; CHECK-NEXT: .b8 97 320; CHECK-NEXT: .b8 107 321; CHECK-NEXT: .b8 101 322; CHECK-NEXT: .b8 95 323; CHECK-NEXT: .b8 103 324; CHECK-NEXT: .b8 99 325; CHECK-NEXT: .b8 99 326; CHECK-NEXT: .b8 0 327; CHECK-NEXT: .b64 $L__func_begin1 // DW_AT_low_pc 328; CHECK-NEXT: .b64 $L__func_end1 // DW_AT_high_pc 329; CHECK-NEXT: .b8 2 // Abbrev [2] 0x64:0x4 DW_TAG_structure_type 330; CHECK-NEXT: .b8 65 // DW_AT_name 331; CHECK-NEXT: .b8 0 332; CHECK-NEXT: .b8 1 // DW_AT_declaration 333; CHECK-NEXT: .b8 3 // Abbrev [3] 0x68:0x3a DW_TAG_subprogram 334; CHECK-NEXT: .b64 $L__func_begin1 // DW_AT_low_pc 335; CHECK-NEXT: .b64 $L__func_end1 // DW_AT_high_pc 336; CHECK-NEXT: .b8 1 // DW_AT_frame_base 337; CHECK-NEXT: .b8 156 338; CHECK-NEXT: .b8 95 // DW_AT_MIPS_linkage_name 339; CHECK-NEXT: .b8 90 340; CHECK-NEXT: .b8 51 341; CHECK-NEXT: .b8 98 342; CHECK-NEXT: .b8 97 343; CHECK-NEXT: .b8 122 344; CHECK-NEXT: .b8 49 345; CHECK-NEXT: .b8 65 346; CHECK-NEXT: .b8 0 347; CHECK-NEXT: .b8 98 // DW_AT_name 348; CHECK-NEXT: .b8 97 349; CHECK-NEXT: .b8 122 350; CHECK-NEXT: .b8 0 351; CHECK-NEXT: .b8 2 // DW_AT_decl_file 352; CHECK-NEXT: .b8 6 // DW_AT_decl_line 353; CHECK-NEXT: .b8 1 // DW_AT_external 354; CHECK-NEXT: .b8 4 // Abbrev [4] 0x8b:0x9 DW_TAG_formal_parameter 355; CHECK-NEXT: .b8 97 // DW_AT_name 356; CHECK-NEXT: .b8 0 357; CHECK-NEXT: .b8 2 // DW_AT_decl_file 358; CHECK-NEXT: .b8 6 // DW_AT_decl_line 359; CHECK-NEXT: .b32 100 // DW_AT_type 360; CHECK-NEXT: .b8 5 // Abbrev [5] 0x94:0xd DW_TAG_variable 361; CHECK-NEXT: .b8 122 // DW_AT_name 362; CHECK-NEXT: .b8 0 363; CHECK-NEXT: .b8 2 // DW_AT_decl_file 364; CHECK-NEXT: .b8 7 // DW_AT_decl_line 365; CHECK-NEXT: .b64 .debug_info+311 // DW_AT_type 366; CHECK-NEXT: .b8 0 // End Of Children Mark 367; CHECK-NEXT: .b8 0 // End Of Children Mark 368; CHECK-NEXT: .b32 152 // Length of Unit 369; CHECK-NEXT: .b8 2 // DWARF version number 370; CHECK-NEXT: .b8 0 371; CHECK-NEXT: .b32 .debug_abbrev // Offset Into Abbrev. Section 372; CHECK-NEXT: .b8 8 // Address Size (in bytes) 373; CHECK-NEXT: .b8 1 // Abbrev [1] 0xb:0x91 DW_TAG_compile_unit 374; CHECK-NEXT: .b8 99 // DW_AT_producer 375; CHECK-NEXT: .b8 108 376; CHECK-NEXT: .b8 97 377; CHECK-NEXT: .b8 110 378; CHECK-NEXT: .b8 103 379; CHECK-NEXT: .b8 32 380; CHECK-NEXT: .b8 118 381; CHECK-NEXT: .b8 101 382; CHECK-NEXT: .b8 114 383; CHECK-NEXT: .b8 115 384; CHECK-NEXT: .b8 105 385; CHECK-NEXT: .b8 111 386; CHECK-NEXT: .b8 110 387; CHECK-NEXT: .b8 32 388; CHECK-NEXT: .b8 51 389; CHECK-NEXT: .b8 46 390; CHECK-NEXT: .b8 53 391; CHECK-NEXT: .b8 46 392; CHECK-NEXT: .b8 48 393; CHECK-NEXT: .b8 32 394; CHECK-NEXT: .b8 40 395; CHECK-NEXT: .b8 50 396; CHECK-NEXT: .b8 49 397; CHECK-NEXT: .b8 48 398; CHECK-NEXT: .b8 52 399; CHECK-NEXT: .b8 55 400; CHECK-NEXT: .b8 57 401; CHECK-NEXT: .b8 41 402; CHECK-NEXT: .b8 0 403; CHECK-NEXT: .b8 4 // DW_AT_language 404; CHECK-NEXT: .b8 0 405; CHECK-NEXT: .b8 100 // DW_AT_name 406; CHECK-NEXT: .b8 101 407; CHECK-NEXT: .b8 98 408; CHECK-NEXT: .b8 117 409; CHECK-NEXT: .b8 103 410; CHECK-NEXT: .b8 45 411; CHECK-NEXT: .b8 108 412; CHECK-NEXT: .b8 111 413; CHECK-NEXT: .b8 99 414; CHECK-NEXT: .b8 45 415; CHECK-NEXT: .b8 111 416; CHECK-NEXT: .b8 102 417; CHECK-NEXT: .b8 102 418; CHECK-NEXT: .b8 115 419; CHECK-NEXT: .b8 101 420; CHECK-NEXT: .b8 116 421; CHECK-NEXT: .b8 49 422; CHECK-NEXT: .b8 46 423; CHECK-NEXT: .b8 99 424; CHECK-NEXT: .b8 99 425; CHECK-NEXT: .b8 0 426; CHECK-NEXT: .b32 .debug_line // DW_AT_stmt_list 427; CHECK-NEXT: .b8 47 // DW_AT_comp_dir 428; CHECK-NEXT: .b8 108 429; CHECK-NEXT: .b8 108 430; CHECK-NEXT: .b8 118 431; CHECK-NEXT: .b8 109 432; CHECK-NEXT: .b8 95 433; CHECK-NEXT: .b8 99 434; CHECK-NEXT: .b8 109 435; CHECK-NEXT: .b8 97 436; CHECK-NEXT: .b8 107 437; CHECK-NEXT: .b8 101 438; CHECK-NEXT: .b8 95 439; CHECK-NEXT: .b8 103 440; CHECK-NEXT: .b8 99 441; CHECK-NEXT: .b8 99 442; CHECK-NEXT: .b8 0 443; CHECK-NEXT: .b64 $L__func_begin0 // DW_AT_low_pc 444; CHECK-NEXT: .b64 $L__func_end0 // DW_AT_high_pc 445; CHECK-NEXT: .b8 6 // Abbrev [6] 0x64:0x30 DW_TAG_subprogram 446; CHECK-NEXT: .b64 $L__func_begin0 // DW_AT_low_pc 447; CHECK-NEXT: .b64 $L__func_end0 // DW_AT_high_pc 448; CHECK-NEXT: .b8 1 // DW_AT_frame_base 449; CHECK-NEXT: .b8 156 450; CHECK-NEXT: .b8 95 // DW_AT_MIPS_linkage_name 451; CHECK-NEXT: .b8 90 452; CHECK-NEXT: .b8 51 453; CHECK-NEXT: .b8 98 454; CHECK-NEXT: .b8 97 455; CHECK-NEXT: .b8 114 456; CHECK-NEXT: .b8 105 457; CHECK-NEXT: .b8 0 458; CHECK-NEXT: .b8 98 // DW_AT_name 459; CHECK-NEXT: .b8 97 460; CHECK-NEXT: .b8 114 461; CHECK-NEXT: .b8 0 462; CHECK-NEXT: .b8 1 // DW_AT_decl_file 463; CHECK-NEXT: .b8 1 // DW_AT_decl_line 464; CHECK-NEXT: .b32 148 // DW_AT_type 465; CHECK-NEXT: .b8 1 // DW_AT_external 466; CHECK-NEXT: .b8 4 // Abbrev [4] 0x8a:0x9 DW_TAG_formal_parameter 467; CHECK-NEXT: .b8 98 // DW_AT_name 468; CHECK-NEXT: .b8 0 469; CHECK-NEXT: .b8 1 // DW_AT_decl_file 470; CHECK-NEXT: .b8 1 // DW_AT_decl_line 471; CHECK-NEXT: .b32 148 // DW_AT_type 472; CHECK-NEXT: .b8 0 // End Of Children Mark 473; CHECK-NEXT: .b8 7 // Abbrev [7] 0x94:0x7 DW_TAG_base_type 474; CHECK-NEXT: .b8 105 // DW_AT_name 475; CHECK-NEXT: .b8 110 476; CHECK-NEXT: .b8 116 477; CHECK-NEXT: .b8 0 478; CHECK-NEXT: .b8 5 // DW_AT_encoding 479; CHECK-NEXT: .b8 4 // DW_AT_byte_size 480; CHECK-NEXT: .b8 0 // End Of Children Mark 481; CHECK-NEXT: } 482; CHECK-NEXT: .section .debug_loc { } 483; CHECK-NOT: debug_ 484