110 lines · plain
1; RUN: rm -rf %t2; RUN: mkdir %t3; RUN: cd %t4; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-debug-names-main.s \5; RUN: -split-dwarf-file=main.dwo -o main.o6; RUN: %clang %cflags -gdwarf-5 -gsplit-dwarf=split main.o -o main.exe7; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections8; RUN: llvm-dwarfdump --debug-info --debug-names main.exe.bolt > log.txt9; RUN: cat log.txt | FileCheck -check-prefix=BOLT %s10 11;; Tests that BOLT correctly generates .debug_names section with one CU for split dwarf.12 13; BOLT: [[OFFSET:0x[0-9a-f]*]]: Compile Unit14; BOLT: Name Index @ 0x0 {15; BOLT-NEXT: Header {16; BOLT-NEXT: Length: 0xAF17; BOLT-NEXT: Format: DWARF3218; BOLT-NEXT: Version: 519; BOLT-NEXT: CU count: 120; BOLT-NEXT: Local TU count: 021; BOLT-NEXT: Foreign TU count: 022; BOLT-NEXT: Bucket count: 523; BOLT-NEXT: Name count: 524; BOLT-NEXT: Abbreviations table size: 0x1925; BOLT-NEXT: Augmentation: 'BOLT'26; BOLT-NEXT: }27; BOLT-NEXT: Compilation Unit offsets [28; BOLT-NEXT: CU[0]: 0x0000000029; BOLT-NEXT: ]30; BOLT-NEXT: Abbreviations [31; BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] {32; BOLT-NEXT: Tag: DW_TAG_structure_type33; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref434; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present35; BOLT-NEXT: }36; BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] {37; BOLT-NEXT: Tag: DW_TAG_subprogram38; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref439; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present40; BOLT-NEXT: }41; BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] {42; BOLT-NEXT: Tag: DW_TAG_base_type43; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref444; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present45; BOLT-NEXT: }46; BOLT-NEXT: ]47; BOLT-NEXT: Bucket 0 [48; BOLT-NEXT: EMPTY49; BOLT-NEXT: ]50; BOLT-NEXT: Bucket 1 [51; BOLT-NEXT: Name 1 {52; BOLT-NEXT: Hash: 0x7C96E4DB53; BOLT-NEXT: String: {{.+}} "Foo2"54; BOLT-NEXT: Entry @ {{.+}} {55; BOLT-NEXT: Abbrev: [[ABBREV1]]56; BOLT-NEXT: Tag: DW_TAG_structure_type57; BOLT-NEXT: DW_IDX_die_offset: 0x0000006858; BOLT-NEXT: DW_IDX_parent: <parent not indexed>59; BOLT-NEXT: }60; BOLT-NEXT: }61; BOLT-NEXT: Name 2 {62; BOLT-NEXT: Hash: 0x7C9A7F6A63; BOLT-NEXT: String: {{.+}} "main"64; BOLT-NEXT: Entry @ {{.+}} {65; BOLT-NEXT: Abbrev: [[ABBREV2]]66; BOLT-NEXT: Tag: DW_TAG_subprogram67; BOLT-NEXT: DW_IDX_die_offset: 0x0000001a68; BOLT-NEXT: DW_IDX_parent: <parent not indexed>69; BOLT-NEXT: }70; BOLT-NEXT: }71; BOLT-NEXT: ]72; BOLT-NEXT: Bucket 2 [73; BOLT-NEXT: EMPTY74; BOLT-NEXT: ]75; BOLT-NEXT: Bucket 3 [76; BOLT-NEXT: Name 3 {77; BOLT-NEXT: Hash: 0xB88803078; BOLT-NEXT: String: {{.+}} "int"79; BOLT-NEXT: Entry @ {{.+}} {80; BOLT-NEXT: Abbrev: [[ABBREV3]]81; BOLT-NEXT: Tag: DW_TAG_base_type82; BOLT-NEXT: DW_IDX_die_offset: 0x0000005683; BOLT-NEXT: DW_IDX_parent: <parent not indexed>84; BOLT-NEXT: }85; BOLT-NEXT: }86; BOLT-NEXT: ]87; BOLT-NEXT: Bucket 4 [88; BOLT-NEXT: Name 4 {89; BOLT-NEXT: Hash: 0xF73809C90; BOLT-NEXT: String: {{.+}} "Foo2a"91; BOLT-NEXT: Entry @ {{.+}} {92; BOLT-NEXT: Abbrev: [[ABBREV1]]93; BOLT-NEXT: Tag: DW_TAG_structure_type94; BOLT-NEXT: DW_IDX_die_offset: 0x0000007895; BOLT-NEXT: DW_IDX_parent: <parent not indexed>96; BOLT-NEXT: }97; BOLT-NEXT: }98; BOLT-NEXT: Name 5 {99; BOLT-NEXT: Hash: 0x7C952063100; BOLT-NEXT: String: {{.+}} "char"101; BOLT-NEXT: Entry @ {{.+}} {102; BOLT-NEXT: Abbrev: [[ABBREV3]]103; BOLT-NEXT: Tag: DW_TAG_base_type104; BOLT-NEXT: DW_IDX_die_offset: 0x00000064105; BOLT-NEXT: DW_IDX_parent: <parent not indexed>106; BOLT-NEXT: }107; BOLT-NEXT: }108; BOLT-NEXT: ]109; BOLT-NEXT: }110