xref: /llvm-project/bolt/test/X86/dwarf5-df-one-cu-debug-names.test (revision a4610c7182d35093e9e0fde5be91659a8b9da5b8)
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