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