141 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-types-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 -r 0 main.dwo.dwo > log.txt9; RUN: llvm-dwarfdump --debug-info --debug-names main.exe.bolt >> log.txt10; RUN: cat log.txt | FileCheck -check-prefix=BOLT %s11 12;; Tests that BOLT correctly generates .debug_names section with one CU and foreign TUs.13 14; BOLT: type_signature = [[TYPE:0x[0-9a-f]*]]15; BOLT: type_signature = [[TYPE1:0x[0-9a-f]*]]16; BOLT: Compile Unit17; BOLT: [[OFFSET:0x[0-9a-f]*]]: Compile Unit18; BOLT: Name Index @ 0x0 {19; BOLT-NEXT: Header {20; BOLT-NEXT: Length: 0xD921; BOLT-NEXT: Format: DWARF3222; BOLT-NEXT: Version: 523; BOLT-NEXT: CU count: 124; BOLT-NEXT: Local TU count: 025; BOLT-NEXT: Foreign TU count: 226; BOLT-NEXT: Bucket count: 527; BOLT-NEXT: Name count: 528; BOLT-NEXT: Abbreviations table size: 0x2529; BOLT-NEXT: Augmentation: 'BOLT'30; BOLT-NEXT: }31; BOLT-NEXT: Compilation Unit offsets [32; BOLT-NEXT: CU[0]: [[OFFSET]]33; BOLT-NEXT: ]34; BOLT-NEXT: Foreign Type Unit signatures [35; BOLT-NEXT: ForeignTU[0]: [[TYPE]]36; BOLT-NEXT: ForeignTU[1]: [[TYPE1]]37; BOLT-NEXT: ]38; BOLT-NEXT: Abbreviations [39; BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] {40; BOLT-NEXT: Tag: DW_TAG_structure_type41; BOLT-NEXT: DW_IDX_type_unit: DW_FORM_data142; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref443; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present44; BOLT-NEXT: }45; BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] {46; BOLT-NEXT: Tag: DW_TAG_subprogram47; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref448; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present49; BOLT-NEXT: }50; BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] {51; BOLT-NEXT: Tag: DW_TAG_base_type52; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref453; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present54; BOLT-NEXT: }55; BOLT-NEXT: Abbreviation [[ABBREV4:0x[0-9a-f]*]] {56; BOLT-NEXT: Tag: DW_TAG_base_type57; BOLT-NEXT: DW_IDX_type_unit: DW_FORM_data158; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref459; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present60; BOLT-NEXT: }61; BOLT-NEXT: ]62; BOLT-NEXT: Bucket 0 [63; BOLT-NEXT: EMPTY64; BOLT-NEXT: ]65; BOLT-NEXT: Bucket 1 [66; BOLT-NEXT: Name 1 {67; BOLT-NEXT: Hash: 0x7C96E4DB68; BOLT-NEXT: String: {{.+}} "Foo2"69; BOLT-NEXT: Entry @ {{.+}} {70; BOLT-NEXT: Abbrev: [[ABBREV1]]71; BOLT-NEXT: Tag: DW_TAG_structure_type72; BOLT-NEXT: DW_IDX_type_unit: 0x0073; BOLT-NEXT: DW_IDX_die_offset: 0x0000002174; BOLT-NEXT: DW_IDX_parent: <parent not indexed>75; BOLT-NEXT: }76; BOLT-NEXT: }77; BOLT-NEXT: Name 2 {78; BOLT-NEXT: Hash: 0x7C9A7F6A79; BOLT-NEXT: String: {{.+}} "main"80; BOLT-NEXT: Entry @ {{.+}} {81; BOLT-NEXT: Abbrev: [[ABBREV2]]82; BOLT-NEXT: Tag: DW_TAG_subprogram83; BOLT-NEXT: DW_IDX_die_offset: 0x0000001a84; BOLT-NEXT: DW_IDX_parent: <parent not indexed>85; BOLT-NEXT: }86; BOLT-NEXT: }87; BOLT-NEXT: ]88; BOLT-NEXT: Bucket 2 [89; BOLT-NEXT: EMPTY90; BOLT-NEXT: ]91; BOLT-NEXT: Bucket 3 [92; BOLT-NEXT: Name 3 {93; BOLT-NEXT: Hash: 0xB88803094; BOLT-NEXT: String: {{.+}} "int"95; BOLT-NEXT: Entry @ {{.+}} {96; BOLT-NEXT: Abbrev: [[ABBREV3]]97; BOLT-NEXT: Tag: DW_TAG_base_type98; BOLT-NEXT: DW_IDX_die_offset: 0x0000005699; BOLT-NEXT: DW_IDX_parent: <parent not indexed>100; BOLT-NEXT: }101; BOLT-NEXT: }102; BOLT-NEXT: ]103; BOLT-NEXT: Bucket 4 [104; BOLT-NEXT: Name 4 {105; BOLT-NEXT: Hash: 0xF73809C106; BOLT-NEXT: String: {{.+}} "Foo2a"107; BOLT-NEXT: Entry @ {{.+}} {108; BOLT-NEXT: Abbrev: [[ABBREV1]]109; BOLT-NEXT: Tag: DW_TAG_structure_type110; BOLT-NEXT: DW_IDX_type_unit: 0x01111; BOLT-NEXT: DW_IDX_die_offset: 0x00000021112; BOLT-NEXT: DW_IDX_parent: <parent not indexed>113; BOLT-NEXT: }114; BOLT-NEXT: }115; BOLT-NEXT: Name 5 {116; BOLT-NEXT: Hash: 0x7C952063117; BOLT-NEXT: String: {{.+}} "char"118; BOLT-NEXT: Entry @ {{.+}} {119; BOLT-NEXT: Abbrev: [[ABBREV4]]120; BOLT-NEXT: Tag: DW_TAG_base_type121; BOLT-NEXT: DW_IDX_type_unit: 0x00122; BOLT-NEXT: DW_IDX_die_offset: 0x00000036123; BOLT-NEXT: DW_IDX_parent: <parent not indexed>124; BOLT-NEXT: }125; BOLT-NEXT: Entry @ {{.+}} {126; BOLT-NEXT: Abbrev: [[ABBREV4]]127; BOLT-NEXT: Tag: DW_TAG_base_type128; BOLT-NEXT: DW_IDX_type_unit: 0x01129; BOLT-NEXT: DW_IDX_die_offset: 0x00000048130; BOLT-NEXT: DW_IDX_parent: <parent not indexed>131; BOLT-NEXT: }132; BOLT-NEXT: Entry @ {{.+}} {133; BOLT-NEXT: Abbrev: [[ABBREV3]]134; BOLT-NEXT: Tag: DW_TAG_base_type135; BOLT-NEXT: DW_IDX_die_offset: 0x00000064136; BOLT-NEXT: DW_IDX_parent: <parent not indexed>137; BOLT-NEXT: }138; BOLT-NEXT: }139; BOLT-NEXT: ]140; BOLT-NEXT: }141