16de5fcc7SAlexander Yermolovich; RUN: rm -rf %t 26de5fcc7SAlexander Yermolovich; RUN: mkdir %t 36de5fcc7SAlexander Yermolovich; RUN: cd %t 46de5fcc7SAlexander Yermolovich; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-debug-names-main.s \ 56de5fcc7SAlexander Yermolovich; RUN: -split-dwarf-file=main.dwo -o main.o 66de5fcc7SAlexander Yermolovich; RUN: %clang %cflags -gdwarf-5 -gsplit-dwarf=split main.o -o main.exe 76de5fcc7SAlexander Yermolovich; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections 86de5fcc7SAlexander Yermolovich; RUN: llvm-dwarfdump --debug-info --debug-names main.exe.bolt > log.txt 96de5fcc7SAlexander Yermolovich; RUN: cat log.txt | FileCheck -check-prefix=BOLT %s 106de5fcc7SAlexander Yermolovich 116de5fcc7SAlexander Yermolovich;; Tests that BOLT correctly generates .debug_names section with one CU for split dwarf. 126de5fcc7SAlexander Yermolovich 136de5fcc7SAlexander Yermolovich; BOLT: [[OFFSET:0x[0-9a-f]*]]: Compile Unit 146de5fcc7SAlexander Yermolovich; BOLT: Name Index @ 0x0 { 156de5fcc7SAlexander Yermolovich; BOLT-NEXT: Header { 16*a4610c71SAlexander Yermolovich; BOLT-NEXT: Length: 0xAF 176de5fcc7SAlexander Yermolovich; BOLT-NEXT: Format: DWARF32 186de5fcc7SAlexander Yermolovich; BOLT-NEXT: Version: 5 196de5fcc7SAlexander Yermolovich; BOLT-NEXT: CU count: 1 206de5fcc7SAlexander Yermolovich; BOLT-NEXT: Local TU count: 0 216de5fcc7SAlexander Yermolovich; BOLT-NEXT: Foreign TU count: 0 226de5fcc7SAlexander Yermolovich; BOLT-NEXT: Bucket count: 5 236de5fcc7SAlexander Yermolovich; BOLT-NEXT: Name count: 5 24*a4610c71SAlexander Yermolovich; BOLT-NEXT: Abbreviations table size: 0x19 256de5fcc7SAlexander Yermolovich; BOLT-NEXT: Augmentation: 'BOLT' 266de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 276de5fcc7SAlexander Yermolovich; BOLT-NEXT: Compilation Unit offsets [ 286de5fcc7SAlexander Yermolovich; BOLT-NEXT: CU[0]: 0x00000000 296de5fcc7SAlexander Yermolovich; BOLT-NEXT: ] 306de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbreviations [ 316de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] { 326de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_structure_type 336de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 34*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present 356de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 366de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] { 376de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_subprogram 386de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 39*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present 406de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 416de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] { 426de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_base_type 436de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref4 44*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present 456de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 466de5fcc7SAlexander Yermolovich; BOLT-NEXT: ] 476de5fcc7SAlexander Yermolovich; BOLT-NEXT: Bucket 0 [ 486de5fcc7SAlexander Yermolovich; BOLT-NEXT: EMPTY 496de5fcc7SAlexander Yermolovich; BOLT-NEXT: ] 506de5fcc7SAlexander Yermolovich; BOLT-NEXT: Bucket 1 [ 516de5fcc7SAlexander Yermolovich; BOLT-NEXT: Name 1 { 526de5fcc7SAlexander Yermolovich; BOLT-NEXT: Hash: 0x7C96E4DB 536de5fcc7SAlexander Yermolovich; BOLT-NEXT: String: {{.+}} "Foo2" 546de5fcc7SAlexander Yermolovich; BOLT-NEXT: Entry @ {{.+}} { 556de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbrev: [[ABBREV1]] 566de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_structure_type 576de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: 0x00000068 58*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: <parent not indexed> 596de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 606de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 616de5fcc7SAlexander Yermolovich; BOLT-NEXT: Name 2 { 626de5fcc7SAlexander Yermolovich; BOLT-NEXT: Hash: 0x7C9A7F6A 636de5fcc7SAlexander Yermolovich; BOLT-NEXT: String: {{.+}} "main" 646de5fcc7SAlexander Yermolovich; BOLT-NEXT: Entry @ {{.+}} { 656de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbrev: [[ABBREV2]] 666de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_subprogram 676de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: 0x0000001a 68*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: <parent not indexed> 696de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 706de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 716de5fcc7SAlexander Yermolovich; BOLT-NEXT: ] 726de5fcc7SAlexander Yermolovich; BOLT-NEXT: Bucket 2 [ 736de5fcc7SAlexander Yermolovich; BOLT-NEXT: EMPTY 746de5fcc7SAlexander Yermolovich; BOLT-NEXT: ] 756de5fcc7SAlexander Yermolovich; BOLT-NEXT: Bucket 3 [ 766de5fcc7SAlexander Yermolovich; BOLT-NEXT: Name 3 { 776de5fcc7SAlexander Yermolovich; BOLT-NEXT: Hash: 0xB888030 786de5fcc7SAlexander Yermolovich; BOLT-NEXT: String: {{.+}} "int" 796de5fcc7SAlexander Yermolovich; BOLT-NEXT: Entry @ {{.+}} { 806de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbrev: [[ABBREV3]] 816de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_base_type 826de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: 0x00000056 83*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: <parent not indexed> 846de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 856de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 866de5fcc7SAlexander Yermolovich; BOLT-NEXT: ] 876de5fcc7SAlexander Yermolovich; BOLT-NEXT: Bucket 4 [ 886de5fcc7SAlexander Yermolovich; BOLT-NEXT: Name 4 { 896de5fcc7SAlexander Yermolovich; BOLT-NEXT: Hash: 0xF73809C 906de5fcc7SAlexander Yermolovich; BOLT-NEXT: String: {{.+}} "Foo2a" 916de5fcc7SAlexander Yermolovich; BOLT-NEXT: Entry @ {{.+}} { 926de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbrev: [[ABBREV1]] 936de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_structure_type 946de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: 0x00000078 95*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: <parent not indexed> 966de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 976de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 986de5fcc7SAlexander Yermolovich; BOLT-NEXT: Name 5 { 996de5fcc7SAlexander Yermolovich; BOLT-NEXT: Hash: 0x7C952063 1006de5fcc7SAlexander Yermolovich; BOLT-NEXT: String: {{.+}} "char" 1016de5fcc7SAlexander Yermolovich; BOLT-NEXT: Entry @ {{.+}} { 1026de5fcc7SAlexander Yermolovich; BOLT-NEXT: Abbrev: [[ABBREV3]] 1036de5fcc7SAlexander Yermolovich; BOLT-NEXT: Tag: DW_TAG_base_type 1046de5fcc7SAlexander Yermolovich; BOLT-NEXT: DW_IDX_die_offset: 0x00000064 105*a4610c71SAlexander Yermolovich; BOLT-NEXT: DW_IDX_parent: <parent not indexed> 1066de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 1076de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 1086de5fcc7SAlexander Yermolovich; BOLT-NEXT: ] 1096de5fcc7SAlexander Yermolovich; BOLT-NEXT: } 110