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