1# REQUIRES: x86 2## Test name indexes that contain multiple CU offsets due to LTO. 3 4# RUN: rm -rf %t && split-file %s %t && cd %t 5# RUN: llvm-mc -filetype=obj -triple=x86_64 %S/Inputs/debug-names-a.s -o a.o 6# RUN: llvm-mc -filetype=obj -triple=x86_64 bcd.s -o bcd.o 7# RUN: llvm-mc -filetype=obj -triple=x86_64 ef.s -o ef.o 8# RUN: ld.lld --debug-names a.o bcd.o ef.o -o out 9# RUN: llvm-dwarfdump --debug-info --debug-names out | FileCheck %s --check-prefix=DWARF 10 11## Place the multiple CU offsets in the second name index in an input file. 12# RUN: ld.lld -r a.o bcd.o -o abcd.o 13# RUN: ld.lld --debug-names abcd.o ef.o -o out 14# RUN: llvm-dwarfdump --debug-info --debug-names out | FileCheck %s --check-prefix=DWARF 15 16# DWARF: [[CU0:0x[^:]+]]: Compile Unit 17# DWARF: [[CU1:0x[^:]+]]: Compile Unit 18# DWARF: [[CU2:0x[^:]+]]: Compile Unit 19# DWARF: [[CU3:0x[^:]+]]: Compile Unit 20# DWARF: [[CU4:0x[^:]+]]: Compile Unit 21# DWARF: [[CU5:0x[^:]+]]: Compile Unit 22# DWARF: Compilation Unit offsets [ 23# DWARF-NEXT: CU[0]: [[CU0]] 24# DWARF-NEXT: CU[1]: [[CU1]] 25# DWARF-NEXT: CU[2]: [[CU2]] 26# DWARF-NEXT: CU[3]: [[CU3]] 27# DWARF-NEXT: CU[4]: [[CU4]] 28# DWARF-NEXT: CU[5]: [[CU5]] 29# DWARF-NEXT: ] 30# DWARF: String: {{.*}} "vc" 31# DWARF: DW_IDX_compile_unit: 0x02 32# DWARF: String: {{.*}} "vd" 33# DWARF: DW_IDX_die_offset: 34# DWARF-SAME: 0x00000020 35# DWARF: DW_IDX_compile_unit: 36# DWARF-SAME: 0x03 37# DWARF: String: {{.*}} "ve" 38# DWARF: DW_IDX_die_offset: 39# DWARF-SAME: 0x0000001e 40# DWARF: DW_IDX_compile_unit: 41# DWARF-SAME: 0x04 42# DWARF: String: {{.*}} "vf" 43# DWARF: DW_IDX_compile_unit: 44# DWARF-SAME: 0x05 45# DWARF: String: {{.*}} "vb" 46# DWARF: DW_IDX_compile_unit: 47# DWARF-SAME: 0x01 48 49.ifdef GEN 50#--- b.cc 51[[gnu::used]] int vb; 52#--- c.cc 53[[gnu::used]] int vc; 54#--- d.cc 55namespace ns { 56[[gnu::used]] int vd; 57} 58 59//--- e.cc 60[[gnu::used]] int ve; 61//--- f.cc 62namespace ns { 63[[gnu::used]] int vf; 64} 65 66#--- gen 67clang --target=x86_64-linux -O1 -g -gpubnames -flto b.cc c.cc d.cc -nostdlib -fuse-ld=lld -Wl,--lto-emit-asm 68echo '#--- bcd.s' 69cat a.out.lto.s 70clang --target=x86_64-linux -O1 -g -gpubnames -flto e.cc f.cc -nostdlib -fuse-ld=lld -Wl,--lto-emit-asm 71echo '#--- ef.s' 72cat a.out.lto.s 73.endif 74#--- bcd.s 75 .text 76 .file "ld-temp.o" 77 .file 1 "/proc/self/cwd" "b.cc" md5 0x78dad32a49063326a4de543198e54944 78 .file 2 "/proc/self/cwd" "c.cc" md5 0x7a0f7bf2cb0ec8c297f794908d91ab1b 79 .file 3 "/proc/self/cwd" "d.cc" md5 0xf7e2af89615ce48bf9a98fdae55ab5ad 80 .type vb,@object # @vb 81 .section .bss.vb,"aw",@nobits 82 .globl vb 83 .p2align 2, 0x0 84vb: 85 .long 0 # 0x0 86 .size vb, 4 87 88 .type vc,@object # @vc 89 .section .bss.vc,"aw",@nobits 90 .globl vc 91 .p2align 2, 0x0 92vc: 93 .long 0 # 0x0 94 .size vc, 4 95 96 .type _ZN2ns2vdE,@object # @_ZN2ns2vdE 97 .section .bss._ZN2ns2vdE,"aw",@nobits 98 .globl _ZN2ns2vdE 99 .p2align 2, 0x0 100_ZN2ns2vdE: 101 .long 0 # 0x0 102 .size _ZN2ns2vdE, 4 103 104 .section .debug_abbrev,"",@progbits 105 .byte 1 # Abbreviation Code 106 .byte 17 # DW_TAG_compile_unit 107 .byte 1 # DW_CHILDREN_yes 108 .byte 37 # DW_AT_producer 109 .byte 37 # DW_FORM_strx1 110 .byte 19 # DW_AT_language 111 .byte 5 # DW_FORM_data2 112 .byte 3 # DW_AT_name 113 .byte 37 # DW_FORM_strx1 114 .byte 114 # DW_AT_str_offsets_base 115 .byte 23 # DW_FORM_sec_offset 116 .byte 16 # DW_AT_stmt_list 117 .byte 23 # DW_FORM_sec_offset 118 .byte 27 # DW_AT_comp_dir 119 .byte 37 # DW_FORM_strx1 120 .byte 115 # DW_AT_addr_base 121 .byte 23 # DW_FORM_sec_offset 122 .byte 0 # EOM(1) 123 .byte 0 # EOM(2) 124 .byte 2 # Abbreviation Code 125 .byte 52 # DW_TAG_variable 126 .byte 0 # DW_CHILDREN_no 127 .byte 3 # DW_AT_name 128 .byte 37 # DW_FORM_strx1 129 .byte 73 # DW_AT_type 130 .byte 19 # DW_FORM_ref4 131 .byte 63 # DW_AT_external 132 .byte 25 # DW_FORM_flag_present 133 .byte 58 # DW_AT_decl_file 134 .byte 11 # DW_FORM_data1 135 .byte 59 # DW_AT_decl_line 136 .byte 11 # DW_FORM_data1 137 .byte 2 # DW_AT_location 138 .byte 24 # DW_FORM_exprloc 139 .byte 0 # EOM(1) 140 .byte 0 # EOM(2) 141 .byte 3 # Abbreviation Code 142 .byte 36 # DW_TAG_base_type 143 .byte 0 # DW_CHILDREN_no 144 .byte 3 # DW_AT_name 145 .byte 37 # DW_FORM_strx1 146 .byte 62 # DW_AT_encoding 147 .byte 11 # DW_FORM_data1 148 .byte 11 # DW_AT_byte_size 149 .byte 11 # DW_FORM_data1 150 .byte 0 # EOM(1) 151 .byte 0 # EOM(2) 152 .byte 4 # Abbreviation Code 153 .byte 52 # DW_TAG_variable 154 .byte 0 # DW_CHILDREN_no 155 .byte 3 # DW_AT_name 156 .byte 37 # DW_FORM_strx1 157 .byte 73 # DW_AT_type 158 .byte 16 # DW_FORM_ref_addr 159 .byte 63 # DW_AT_external 160 .byte 25 # DW_FORM_flag_present 161 .byte 58 # DW_AT_decl_file 162 .byte 11 # DW_FORM_data1 163 .byte 59 # DW_AT_decl_line 164 .byte 11 # DW_FORM_data1 165 .byte 2 # DW_AT_location 166 .byte 24 # DW_FORM_exprloc 167 .byte 0 # EOM(1) 168 .byte 0 # EOM(2) 169 .byte 5 # Abbreviation Code 170 .byte 57 # DW_TAG_namespace 171 .byte 1 # DW_CHILDREN_yes 172 .byte 3 # DW_AT_name 173 .byte 37 # DW_FORM_strx1 174 .byte 0 # EOM(1) 175 .byte 0 # EOM(2) 176 .byte 6 # Abbreviation Code 177 .byte 52 # DW_TAG_variable 178 .byte 0 # DW_CHILDREN_no 179 .byte 3 # DW_AT_name 180 .byte 37 # DW_FORM_strx1 181 .byte 73 # DW_AT_type 182 .byte 16 # DW_FORM_ref_addr 183 .byte 63 # DW_AT_external 184 .byte 25 # DW_FORM_flag_present 185 .byte 58 # DW_AT_decl_file 186 .byte 11 # DW_FORM_data1 187 .byte 59 # DW_AT_decl_line 188 .byte 11 # DW_FORM_data1 189 .byte 2 # DW_AT_location 190 .byte 24 # DW_FORM_exprloc 191 .byte 110 # DW_AT_linkage_name 192 .byte 37 # DW_FORM_strx1 193 .byte 0 # EOM(1) 194 .byte 0 # EOM(2) 195 .byte 0 # EOM(3) 196 .section .debug_info,"",@progbits 197.Lcu_begin0: 198 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 199.Ldebug_info_start0: 200 .short 5 # DWARF version number 201 .byte 1 # DWARF Unit Type 202 .byte 8 # Address Size (in bytes) 203 .long .debug_abbrev # Offset Into Abbrev. Section 204 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit 205 .byte 0 # DW_AT_producer 206 .short 33 # DW_AT_language 207 .byte 1 # DW_AT_name 208 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 209 .long .Lline_table_start0 # DW_AT_stmt_list 210 .byte 2 # DW_AT_comp_dir 211 .long .Laddr_table_base0 # DW_AT_addr_base 212 .byte 2 # Abbrev [2] 0x1e:0xb DW_TAG_variable 213 .byte 3 # DW_AT_name 214 .long 41 # DW_AT_type 215 # DW_AT_external 216 .byte 1 # DW_AT_decl_file 217 .byte 1 # DW_AT_decl_line 218 .byte 2 # DW_AT_location 219 .byte 161 220 .byte 0 221 .byte 3 # Abbrev [3] 0x29:0x4 DW_TAG_base_type 222 .byte 4 # DW_AT_name 223 .byte 5 # DW_AT_encoding 224 .byte 4 # DW_AT_byte_size 225 .byte 0 # End Of Children Mark 226.Ldebug_info_end0: 227.Lcu_begin1: 228 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit 229.Ldebug_info_start1: 230 .short 5 # DWARF version number 231 .byte 1 # DWARF Unit Type 232 .byte 8 # Address Size (in bytes) 233 .long .debug_abbrev # Offset Into Abbrev. Section 234 .byte 1 # Abbrev [1] 0xc:0x1e DW_TAG_compile_unit 235 .byte 0 # DW_AT_producer 236 .short 33 # DW_AT_language 237 .byte 5 # DW_AT_name 238 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 239 .long .Lline_table_start0 # DW_AT_stmt_list 240 .byte 2 # DW_AT_comp_dir 241 .long .Laddr_table_base0 # DW_AT_addr_base 242 .byte 4 # Abbrev [4] 0x1e:0xb DW_TAG_variable 243 .byte 6 # DW_AT_name 244 .long .debug_info+41 # DW_AT_type 245 # DW_AT_external 246 .byte 2 # DW_AT_decl_file 247 .byte 1 # DW_AT_decl_line 248 .byte 2 # DW_AT_location 249 .byte 161 250 .byte 1 251 .byte 0 # End Of Children Mark 252.Ldebug_info_end1: 253.Lcu_begin2: 254 .long .Ldebug_info_end2-.Ldebug_info_start2 # Length of Unit 255.Ldebug_info_start2: 256 .short 5 # DWARF version number 257 .byte 1 # DWARF Unit Type 258 .byte 8 # Address Size (in bytes) 259 .long .debug_abbrev # Offset Into Abbrev. Section 260 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit 261 .byte 0 # DW_AT_producer 262 .short 33 # DW_AT_language 263 .byte 7 # DW_AT_name 264 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 265 .long .Lline_table_start0 # DW_AT_stmt_list 266 .byte 2 # DW_AT_comp_dir 267 .long .Laddr_table_base0 # DW_AT_addr_base 268 .byte 5 # Abbrev [5] 0x1e:0xf DW_TAG_namespace 269 .byte 8 # DW_AT_name 270 .byte 6 # Abbrev [6] 0x20:0xc DW_TAG_variable 271 .byte 9 # DW_AT_name 272 .long .debug_info+41 # DW_AT_type 273 # DW_AT_external 274 .byte 3 # DW_AT_decl_file 275 .byte 2 # DW_AT_decl_line 276 .byte 2 # DW_AT_location 277 .byte 161 278 .byte 2 279 .byte 10 # DW_AT_linkage_name 280 .byte 0 # End Of Children Mark 281 .byte 0 # End Of Children Mark 282.Ldebug_info_end2: 283 .section .debug_str_offsets,"",@progbits 284 .long 48 # Length of String Offsets Set 285 .short 5 286 .short 0 287.Lstr_offsets_base0: 288 .section .debug_str,"MS",@progbits,1 289.Linfo_string0: 290 .byte 0 # string offset=0 291.Linfo_string1: 292 .asciz "b.cc" # string offset=1 293.Linfo_string2: 294 .asciz "/proc/self/cwd" # string offset=6 295.Linfo_string3: 296 .asciz "vb" # string offset=21 297.Linfo_string4: 298 .asciz "int" # string offset=24 299.Linfo_string5: 300 .asciz "c.cc" # string offset=28 301.Linfo_string6: 302 .asciz "vc" # string offset=33 303.Linfo_string7: 304 .asciz "d.cc" # string offset=36 305.Linfo_string8: 306 .asciz "ns" # string offset=41 307.Linfo_string9: 308 .asciz "vd" # string offset=44 309.Linfo_string10: 310 .asciz "_ZN2ns2vdE" # string offset=47 311 .section .debug_str_offsets,"",@progbits 312 .long .Linfo_string0 313 .long .Linfo_string1 314 .long .Linfo_string2 315 .long .Linfo_string3 316 .long .Linfo_string4 317 .long .Linfo_string5 318 .long .Linfo_string6 319 .long .Linfo_string7 320 .long .Linfo_string8 321 .long .Linfo_string9 322 .long .Linfo_string10 323 .section .debug_addr,"",@progbits 324 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 325.Ldebug_addr_start0: 326 .short 5 # DWARF version number 327 .byte 8 # Address size 328 .byte 0 # Segment selector size 329.Laddr_table_base0: 330 .quad vb 331 .quad vc 332 .quad _ZN2ns2vdE 333.Ldebug_addr_end0: 334 .section .debug_names,"",@progbits 335 .long .Lnames_end0-.Lnames_start0 # Header: unit length 336.Lnames_start0: 337 .short 5 # Header: version 338 .short 0 # Header: padding 339 .long 3 # Header: compilation unit count 340 .long 0 # Header: local type unit count 341 .long 0 # Header: foreign type unit count 342 .long 6 # Header: bucket count 343 .long 6 # Header: name count 344 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 345 .long 8 # Header: augmentation string size 346 .ascii "LLVM0700" # Header: augmentation string 347 .long .Lcu_begin0 # Compilation unit 0 348 .long .Lcu_begin1 # Compilation unit 1 349 .long .Lcu_begin2 # Compilation unit 2 350 .long 1 # Bucket 0 351 .long 2 # Bucket 1 352 .long 3 # Bucket 2 353 .long 0 # Bucket 3 354 .long 4 # Bucket 4 355 .long 6 # Bucket 5 356 .long 5863902 # Hash in Bucket 0 357 .long 5863903 # Hash in Bucket 1 358 .long 193495088 # Hash in Bucket 2 359 .long 5863654 # Hash in Bucket 4 360 .long -823734096 # Hash in Bucket 4 361 .long 5863901 # Hash in Bucket 5 362 .long .Linfo_string6 # String in Bucket 0: vc 363 .long .Linfo_string9 # String in Bucket 1: vd 364 .long .Linfo_string4 # String in Bucket 2: int 365 .long .Linfo_string8 # String in Bucket 4: ns 366 .long .Linfo_string10 # String in Bucket 4: _ZN2ns2vdE 367 .long .Linfo_string3 # String in Bucket 5: vb 368 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 0 369 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 1 370 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 2 371 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 4 372 .long .Lnames5-.Lnames_entries0 # Offset in Bucket 4 373 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 5 374.Lnames_abbrev_start0: 375 .byte 1 # Abbrev code 376 .byte 52 # DW_TAG_variable 377 .byte 1 # DW_IDX_compile_unit 378 .byte 11 # DW_FORM_data1 379 .byte 3 # DW_IDX_die_offset 380 .byte 19 # DW_FORM_ref4 381 .byte 4 # DW_IDX_parent 382 .byte 25 # DW_FORM_flag_present 383 .byte 0 # End of abbrev 384 .byte 0 # End of abbrev 385 .byte 2 # Abbrev code 386 .byte 52 # DW_TAG_variable 387 .byte 1 # DW_IDX_compile_unit 388 .byte 11 # DW_FORM_data1 389 .byte 3 # DW_IDX_die_offset 390 .byte 19 # DW_FORM_ref4 391 .byte 4 # DW_IDX_parent 392 .byte 19 # DW_FORM_ref4 393 .byte 0 # End of abbrev 394 .byte 0 # End of abbrev 395 .byte 3 # Abbrev code 396 .byte 36 # DW_TAG_base_type 397 .byte 1 # DW_IDX_compile_unit 398 .byte 11 # DW_FORM_data1 399 .byte 3 # DW_IDX_die_offset 400 .byte 19 # DW_FORM_ref4 401 .byte 4 # DW_IDX_parent 402 .byte 25 # DW_FORM_flag_present 403 .byte 0 # End of abbrev 404 .byte 0 # End of abbrev 405 .byte 4 # Abbrev code 406 .byte 57 # DW_TAG_namespace 407 .byte 1 # DW_IDX_compile_unit 408 .byte 11 # DW_FORM_data1 409 .byte 3 # DW_IDX_die_offset 410 .byte 19 # DW_FORM_ref4 411 .byte 4 # DW_IDX_parent 412 .byte 25 # DW_FORM_flag_present 413 .byte 0 # End of abbrev 414 .byte 0 # End of abbrev 415 .byte 0 # End of abbrev list 416.Lnames_abbrev_end0: 417.Lnames_entries0: 418.Lnames2: 419.L0: 420 .byte 1 # Abbreviation code 421 .byte 1 # DW_IDX_compile_unit 422 .long 30 # DW_IDX_die_offset 423 .byte 0 # DW_IDX_parent 424 # End of list: vc 425.Lnames4: 426.L4: 427 .byte 2 # Abbreviation code 428 .byte 2 # DW_IDX_compile_unit 429 .long 32 # DW_IDX_die_offset 430 .long .L2-.Lnames_entries0 # DW_IDX_parent 431 .byte 0 # End of list: vd 432.Lnames0: 433.L3: 434 .byte 3 # Abbreviation code 435 .byte 0 # DW_IDX_compile_unit 436 .long 41 # DW_IDX_die_offset 437 .byte 0 # DW_IDX_parent 438 # End of list: int 439.Lnames3: 440.L2: 441 .byte 4 # Abbreviation code 442 .byte 2 # DW_IDX_compile_unit 443 .long 30 # DW_IDX_die_offset 444 .byte 0 # DW_IDX_parent 445 # End of list: ns 446.Lnames5: 447 .byte 2 # Abbreviation code 448 .byte 2 # DW_IDX_compile_unit 449 .long 32 # DW_IDX_die_offset 450 .long .L2-.Lnames_entries0 # DW_IDX_parent 451 .byte 0 # End of list: _ZN2ns2vdE 452.Lnames1: 453.L1: 454 .byte 1 # Abbreviation code 455 .byte 0 # DW_IDX_compile_unit 456 .long 30 # DW_IDX_die_offset 457 .byte 0 # DW_IDX_parent 458 # End of list: vb 459 .p2align 2, 0x0 460.Lnames_end0: 461 .section ".note.GNU-stack","",@progbits 462 .addrsig 463 .addrsig_sym vb 464 .addrsig_sym vc 465 .addrsig_sym _ZN2ns2vdE 466 .section .debug_line,"",@progbits 467.Lline_table_start0: 468#--- ef.s 469 .text 470 .file "ld-temp.o" 471 .file 1 "/proc/self/cwd" "e.cc" md5 0xa8d6c645998197bd15436f2a351ebd6a 472 .file 2 "/proc/self/cwd" "f.cc" md5 0x6ec1ec6b7f003f84cb0bf3409e65b085 473 .type ve,@object # @ve 474 .section .bss.ve,"aw",@nobits 475 .globl ve 476 .p2align 2, 0x0 477ve: 478 .long 0 # 0x0 479 .size ve, 4 480 481 .type _ZN2ns2vfE,@object # @_ZN2ns2vfE 482 .section .bss._ZN2ns2vfE,"aw",@nobits 483 .globl _ZN2ns2vfE 484 .p2align 2, 0x0 485_ZN2ns2vfE: 486 .long 0 # 0x0 487 .size _ZN2ns2vfE, 4 488 489 .section .debug_abbrev,"",@progbits 490 .byte 1 # Abbreviation Code 491 .byte 17 # DW_TAG_compile_unit 492 .byte 1 # DW_CHILDREN_yes 493 .byte 37 # DW_AT_producer 494 .byte 37 # DW_FORM_strx1 495 .byte 19 # DW_AT_language 496 .byte 5 # DW_FORM_data2 497 .byte 3 # DW_AT_name 498 .byte 37 # DW_FORM_strx1 499 .byte 114 # DW_AT_str_offsets_base 500 .byte 23 # DW_FORM_sec_offset 501 .byte 16 # DW_AT_stmt_list 502 .byte 23 # DW_FORM_sec_offset 503 .byte 27 # DW_AT_comp_dir 504 .byte 37 # DW_FORM_strx1 505 .byte 115 # DW_AT_addr_base 506 .byte 23 # DW_FORM_sec_offset 507 .byte 0 # EOM(1) 508 .byte 0 # EOM(2) 509 .byte 2 # Abbreviation Code 510 .byte 52 # DW_TAG_variable 511 .byte 0 # DW_CHILDREN_no 512 .byte 3 # DW_AT_name 513 .byte 37 # DW_FORM_strx1 514 .byte 73 # DW_AT_type 515 .byte 19 # DW_FORM_ref4 516 .byte 63 # DW_AT_external 517 .byte 25 # DW_FORM_flag_present 518 .byte 58 # DW_AT_decl_file 519 .byte 11 # DW_FORM_data1 520 .byte 59 # DW_AT_decl_line 521 .byte 11 # DW_FORM_data1 522 .byte 2 # DW_AT_location 523 .byte 24 # DW_FORM_exprloc 524 .byte 0 # EOM(1) 525 .byte 0 # EOM(2) 526 .byte 3 # Abbreviation Code 527 .byte 36 # DW_TAG_base_type 528 .byte 0 # DW_CHILDREN_no 529 .byte 3 # DW_AT_name 530 .byte 37 # DW_FORM_strx1 531 .byte 62 # DW_AT_encoding 532 .byte 11 # DW_FORM_data1 533 .byte 11 # DW_AT_byte_size 534 .byte 11 # DW_FORM_data1 535 .byte 0 # EOM(1) 536 .byte 0 # EOM(2) 537 .byte 4 # Abbreviation Code 538 .byte 57 # DW_TAG_namespace 539 .byte 1 # DW_CHILDREN_yes 540 .byte 3 # DW_AT_name 541 .byte 37 # DW_FORM_strx1 542 .byte 0 # EOM(1) 543 .byte 0 # EOM(2) 544 .byte 5 # Abbreviation Code 545 .byte 52 # DW_TAG_variable 546 .byte 0 # DW_CHILDREN_no 547 .byte 3 # DW_AT_name 548 .byte 37 # DW_FORM_strx1 549 .byte 73 # DW_AT_type 550 .byte 16 # DW_FORM_ref_addr 551 .byte 63 # DW_AT_external 552 .byte 25 # DW_FORM_flag_present 553 .byte 58 # DW_AT_decl_file 554 .byte 11 # DW_FORM_data1 555 .byte 59 # DW_AT_decl_line 556 .byte 11 # DW_FORM_data1 557 .byte 2 # DW_AT_location 558 .byte 24 # DW_FORM_exprloc 559 .byte 110 # DW_AT_linkage_name 560 .byte 37 # DW_FORM_strx1 561 .byte 0 # EOM(1) 562 .byte 0 # EOM(2) 563 .byte 0 # EOM(3) 564 .section .debug_info,"",@progbits 565.Lcu_begin0: 566 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 567.Ldebug_info_start0: 568 .short 5 # DWARF version number 569 .byte 1 # DWARF Unit Type 570 .byte 8 # Address Size (in bytes) 571 .long .debug_abbrev # Offset Into Abbrev. Section 572 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit 573 .byte 0 # DW_AT_producer 574 .short 33 # DW_AT_language 575 .byte 1 # DW_AT_name 576 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 577 .long .Lline_table_start0 # DW_AT_stmt_list 578 .byte 2 # DW_AT_comp_dir 579 .long .Laddr_table_base0 # DW_AT_addr_base 580 .byte 2 # Abbrev [2] 0x1e:0xb DW_TAG_variable 581 .byte 3 # DW_AT_name 582 .long 41 # DW_AT_type 583 # DW_AT_external 584 .byte 1 # DW_AT_decl_file 585 .byte 1 # DW_AT_decl_line 586 .byte 2 # DW_AT_location 587 .byte 161 588 .byte 0 589 .byte 3 # Abbrev [3] 0x29:0x4 DW_TAG_base_type 590 .byte 4 # DW_AT_name 591 .byte 5 # DW_AT_encoding 592 .byte 4 # DW_AT_byte_size 593 .byte 0 # End Of Children Mark 594.Ldebug_info_end0: 595.Lcu_begin1: 596 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit 597.Ldebug_info_start1: 598 .short 5 # DWARF version number 599 .byte 1 # DWARF Unit Type 600 .byte 8 # Address Size (in bytes) 601 .long .debug_abbrev # Offset Into Abbrev. Section 602 .byte 1 # Abbrev [1] 0xc:0x22 DW_TAG_compile_unit 603 .byte 0 # DW_AT_producer 604 .short 33 # DW_AT_language 605 .byte 5 # DW_AT_name 606 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 607 .long .Lline_table_start0 # DW_AT_stmt_list 608 .byte 2 # DW_AT_comp_dir 609 .long .Laddr_table_base0 # DW_AT_addr_base 610 .byte 4 # Abbrev [4] 0x1e:0xf DW_TAG_namespace 611 .byte 6 # DW_AT_name 612 .byte 5 # Abbrev [5] 0x20:0xc DW_TAG_variable 613 .byte 7 # DW_AT_name 614 .long .debug_info+41 # DW_AT_type 615 # DW_AT_external 616 .byte 2 # DW_AT_decl_file 617 .byte 2 # DW_AT_decl_line 618 .byte 2 # DW_AT_location 619 .byte 161 620 .byte 1 621 .byte 8 # DW_AT_linkage_name 622 .byte 0 # End Of Children Mark 623 .byte 0 # End Of Children Mark 624.Ldebug_info_end1: 625 .section .debug_str_offsets,"",@progbits 626 .long 40 # Length of String Offsets Set 627 .short 5 628 .short 0 629.Lstr_offsets_base0: 630 .section .debug_str,"MS",@progbits,1 631.Linfo_string0: 632 .byte 0 # string offset=0 633.Linfo_string1: 634 .asciz "e.cc" # string offset=1 635.Linfo_string2: 636 .asciz "/proc/self/cwd" # string offset=6 637.Linfo_string3: 638 .asciz "ve" # string offset=21 639.Linfo_string4: 640 .asciz "int" # string offset=24 641.Linfo_string5: 642 .asciz "f.cc" # string offset=28 643.Linfo_string6: 644 .asciz "ns" # string offset=33 645.Linfo_string7: 646 .asciz "vf" # string offset=36 647.Linfo_string8: 648 .asciz "_ZN2ns2vfE" # string offset=39 649 .section .debug_str_offsets,"",@progbits 650 .long .Linfo_string0 651 .long .Linfo_string1 652 .long .Linfo_string2 653 .long .Linfo_string3 654 .long .Linfo_string4 655 .long .Linfo_string5 656 .long .Linfo_string6 657 .long .Linfo_string7 658 .long .Linfo_string8 659 .section .debug_addr,"",@progbits 660 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 661.Ldebug_addr_start0: 662 .short 5 # DWARF version number 663 .byte 8 # Address size 664 .byte 0 # Segment selector size 665.Laddr_table_base0: 666 .quad ve 667 .quad _ZN2ns2vfE 668.Ldebug_addr_end0: 669 .section .debug_names,"",@progbits 670 .long .Lnames_end0-.Lnames_start0 # Header: unit length 671.Lnames_start0: 672 .short 5 # Header: version 673 .short 0 # Header: padding 674 .long 2 # Header: compilation unit count 675 .long 0 # Header: local type unit count 676 .long 0 # Header: foreign type unit count 677 .long 5 # Header: bucket count 678 .long 5 # Header: name count 679 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 680 .long 8 # Header: augmentation string size 681 .ascii "LLVM0700" # Header: augmentation string 682 .long .Lcu_begin0 # Compilation unit 0 683 .long .Lcu_begin1 # Compilation unit 1 684 .long 1 # Bucket 0 685 .long 2 # Bucket 1 686 .long 0 # Bucket 2 687 .long 3 # Bucket 3 688 .long 4 # Bucket 4 689 .long 5863905 # Hash in Bucket 0 690 .long -823734030 # Hash in Bucket 1 691 .long 193495088 # Hash in Bucket 3 692 .long 5863654 # Hash in Bucket 4 693 .long 5863904 # Hash in Bucket 4 694 .long .Linfo_string7 # String in Bucket 0: vf 695 .long .Linfo_string8 # String in Bucket 1: _ZN2ns2vfE 696 .long .Linfo_string4 # String in Bucket 3: int 697 .long .Linfo_string6 # String in Bucket 4: ns 698 .long .Linfo_string3 # String in Bucket 4: ve 699 .long .Lnames3-.Lnames_entries0 # Offset in Bucket 0 700 .long .Lnames4-.Lnames_entries0 # Offset in Bucket 1 701 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 3 702 .long .Lnames2-.Lnames_entries0 # Offset in Bucket 4 703 .long .Lnames1-.Lnames_entries0 # Offset in Bucket 4 704.Lnames_abbrev_start0: 705 .byte 1 # Abbrev code 706 .byte 52 # DW_TAG_variable 707 .byte 1 # DW_IDX_compile_unit 708 .byte 11 # DW_FORM_data1 709 .byte 3 # DW_IDX_die_offset 710 .byte 19 # DW_FORM_ref4 711 .byte 4 # DW_IDX_parent 712 .byte 19 # DW_FORM_ref4 713 .byte 0 # End of abbrev 714 .byte 0 # End of abbrev 715 .byte 2 # Abbrev code 716 .byte 36 # DW_TAG_base_type 717 .byte 1 # DW_IDX_compile_unit 718 .byte 11 # DW_FORM_data1 719 .byte 3 # DW_IDX_die_offset 720 .byte 19 # DW_FORM_ref4 721 .byte 4 # DW_IDX_parent 722 .byte 25 # DW_FORM_flag_present 723 .byte 0 # End of abbrev 724 .byte 0 # End of abbrev 725 .byte 3 # Abbrev code 726 .byte 57 # DW_TAG_namespace 727 .byte 1 # DW_IDX_compile_unit 728 .byte 11 # DW_FORM_data1 729 .byte 3 # DW_IDX_die_offset 730 .byte 19 # DW_FORM_ref4 731 .byte 4 # DW_IDX_parent 732 .byte 25 # DW_FORM_flag_present 733 .byte 0 # End of abbrev 734 .byte 0 # End of abbrev 735 .byte 4 # Abbrev code 736 .byte 52 # DW_TAG_variable 737 .byte 1 # DW_IDX_compile_unit 738 .byte 11 # DW_FORM_data1 739 .byte 3 # DW_IDX_die_offset 740 .byte 19 # DW_FORM_ref4 741 .byte 4 # DW_IDX_parent 742 .byte 25 # DW_FORM_flag_present 743 .byte 0 # End of abbrev 744 .byte 0 # End of abbrev 745 .byte 0 # End of abbrev list 746.Lnames_abbrev_end0: 747.Lnames_entries0: 748.Lnames3: 749.L2: 750 .byte 1 # Abbreviation code 751 .byte 1 # DW_IDX_compile_unit 752 .long 32 # DW_IDX_die_offset 753 .long .L0-.Lnames_entries0 # DW_IDX_parent 754 .byte 0 # End of list: vf 755.Lnames4: 756 .byte 1 # Abbreviation code 757 .byte 1 # DW_IDX_compile_unit 758 .long 32 # DW_IDX_die_offset 759 .long .L0-.Lnames_entries0 # DW_IDX_parent 760 .byte 0 # End of list: _ZN2ns2vfE 761.Lnames0: 762.L3: 763 .byte 2 # Abbreviation code 764 .byte 0 # DW_IDX_compile_unit 765 .long 41 # DW_IDX_die_offset 766 .byte 0 # DW_IDX_parent 767 # End of list: int 768.Lnames2: 769.L0: 770 .byte 3 # Abbreviation code 771 .byte 1 # DW_IDX_compile_unit 772 .long 30 # DW_IDX_die_offset 773 .byte 0 # DW_IDX_parent 774 # End of list: ns 775.Lnames1: 776.L1: 777 .byte 4 # Abbreviation code 778 .byte 0 # DW_IDX_compile_unit 779 .long 30 # DW_IDX_die_offset 780 .byte 0 # DW_IDX_parent 781 # End of list: ve 782 .p2align 2, 0x0 783.Lnames_end0: 784 .section ".note.GNU-stack","",@progbits 785 .addrsig 786 .addrsig_sym ve 787 .addrsig_sym _ZN2ns2vfE 788 .section .debug_line,"",@progbits 789.Lline_table_start0: 790