195 lines · plain
1; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-debug-names-main.s -o %tmain.o2; RUN: %clang %cflags -gdwarf-5 %tmain.o -o %tmain.exe3; RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections4; RUN: llvm-dwarfdump --debug-info -r 0 --debug-names %tmain.exe.bolt > %tlog.txt5; RUN: cat %tlog.txt | FileCheck -check-prefix=BOLT %s6 7;; Tests that BOLT correctly generates .debug_names section with one CUs8 9; BOLT: [[OFFSET1:0x[0-9a-f]*]]: Compile Unit10; BOLT: Name Index @ 0x0 {11; BOLT-NEXT: Header {12; BOLT-NEXT: Length: 0x14F13; BOLT-NEXT: Format: DWARF3214; BOLT-NEXT: Version: 515; BOLT-NEXT: CU count: 116; BOLT-NEXT: Local TU count: 017; BOLT-NEXT: Foreign TU count: 018; BOLT-NEXT: Bucket count: 1119; BOLT-NEXT: Name count: 1120; BOLT-NEXT: Abbreviations table size: 0x3121; BOLT-NEXT: Augmentation: 'BOLT'22; BOLT-NEXT: }23; BOLT-NEXT: Compilation Unit offsets [24; BOLT-NEXT: CU[0]: [[OFFSET1]]25; BOLT-NEXT: ]26; BOLT-NEXT: Abbreviations [27; BOLT-NEXT: Abbreviation [[ABBREV1:0x[0-9a-f]*]] {28; BOLT-NEXT: Tag: DW_TAG_structure_type29; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref430; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present31; BOLT-NEXT: }32; BOLT-NEXT: Abbreviation [[ABBREV2:0x[0-9a-f]*]] {33; BOLT-NEXT: Tag: DW_TAG_base_type34; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref435; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present36; BOLT-NEXT: }37; BOLT-NEXT: Abbreviation [[ABBREV3:0x[0-9a-f]*]] {38; BOLT-NEXT: Tag: DW_TAG_structure_type39; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref440; BOLT-NEXT: DW_IDX_parent: DW_FORM_ref441; BOLT-NEXT: }42; BOLT-NEXT: Abbreviation [[ABBREV4:0x[0-9a-f]*]] {43; BOLT-NEXT: Tag: DW_TAG_variable44; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref445; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present46; BOLT-NEXT: }47; BOLT-NEXT: Abbreviation [[ABBREV5:0x[0-9a-f]*]] {48; BOLT-NEXT: Tag: DW_TAG_subprogram49; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref450; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present51; BOLT-NEXT: }52; BOLT-NEXT: Abbreviation [[ABBREV6:0x[0-9a-f]*]] {53; BOLT-NEXT: Tag: DW_TAG_namespace54; BOLT-NEXT: DW_IDX_die_offset: DW_FORM_ref455; BOLT-NEXT: DW_IDX_parent: DW_FORM_flag_present56; BOLT-NEXT: }57; BOLT-NEXT: ]58; BOLT-NEXT: Bucket 0 [59; BOLT-NEXT: Name 1 {60; BOLT-NEXT: Hash: 0xF73809C61; BOLT-NEXT: String: {{.+}} "Foo2a"62; BOLT-NEXT: Entry @ {{.+}} {63; BOLT-NEXT: Abbrev: [[ABBREV1]]64; BOLT-NEXT: Tag: DW_TAG_structure_type65; BOLT-NEXT: DW_IDX_die_offset: 0x0000010466; BOLT-NEXT: DW_IDX_parent: <parent not indexed>67; BOLT-NEXT: }68; BOLT-NEXT: }69; BOLT-NEXT: Name 2 {70; BOLT-NEXT: Hash: 0x7C95206371; BOLT-NEXT: String: {{.+}} "char"72; BOLT-NEXT: Entry @ {{.+}} {73; BOLT-NEXT: Abbrev: [[ABBREV2]]74; BOLT-NEXT: Tag: DW_TAG_base_type75; BOLT-NEXT: DW_IDX_die_offset: 0x000000c576; BOLT-NEXT: DW_IDX_parent: <parent not indexed>77; BOLT-NEXT: }78; BOLT-NEXT: }79; BOLT-NEXT: ]80; BOLT-NEXT: Bucket 1 [81; BOLT-NEXT: Name 3 {82; BOLT-NEXT: Hash: 0xB88738983; BOLT-NEXT: String: {{.+}} "Foo"84; BOLT-NEXT: Entry @ {{.+}} {85; BOLT-NEXT: Abbrev: [[ABBREV1]]86; BOLT-NEXT: Tag: DW_TAG_structure_type87; BOLT-NEXT: DW_IDX_die_offset: 0x000000c988; BOLT-NEXT: DW_IDX_parent: <parent not indexed>89; BOLT-NEXT: }90; BOLT-NEXT: }91; BOLT-NEXT: Name 4 {92; BOLT-NEXT: Hash: 0x392140FA93; BOLT-NEXT: String: {{.+}} "t2<&fooint>"94; BOLT-NEXT: Entry @ {{.+}} {95; BOLT-NEXT: Abbrev: [[ABBREV1]]96; BOLT-NEXT: Tag: DW_TAG_structure_type97; BOLT-NEXT: DW_IDX_die_offset: 0x0000003f98; BOLT-NEXT: DW_IDX_parent: <parent not indexed>99; BOLT-NEXT: }100; BOLT-NEXT: }101; BOLT-NEXT: ]102; BOLT-NEXT: Bucket 2 [103; BOLT-NEXT: Name 5 {104; BOLT-NEXT: Hash: 0x7C96E4DB105; BOLT-NEXT: String: {{.+}} "Foo2"106; BOLT-NEXT: Entry @ {{.+}} {107; BOLT-NEXT: Abbrev: [[ABBREV1]]108; BOLT-NEXT: Tag: DW_TAG_structure_type109; BOLT-NEXT: DW_IDX_die_offset: 0x000000eb110; BOLT-NEXT: DW_IDX_parent: <parent not indexed>111; BOLT-NEXT: }112; BOLT-NEXT: }113; BOLT-NEXT: ]114; BOLT-NEXT: Bucket 3 [115; BOLT-NEXT: EMPTY116; BOLT-NEXT: ]117; BOLT-NEXT: Bucket 4 [118; BOLT-NEXT: EMPTY119; BOLT-NEXT: ]120; BOLT-NEXT: Bucket 5 [121; BOLT-NEXT: Name 6 {122; BOLT-NEXT: Hash: 0x59796A123; BOLT-NEXT: String: {{.+}} "t1"124; BOLT-NEXT: Entry @ {{.+}} {125; BOLT-NEXT: Abbrev: [[ABBREV3]]126; BOLT-NEXT: Tag: DW_TAG_structure_type127; BOLT-NEXT: DW_IDX_die_offset: 0x00000062128; BOLT-NEXT: DW_IDX_parent: Entry @ 0x14d129; BOLT-NEXT: }130; BOLT-NEXT: }131; BOLT-NEXT: Name 7 {132; BOLT-NEXT: Hash: 0x5979AC133; BOLT-NEXT: String: {{.+}} "v1"134; BOLT-NEXT: Entry @ {{.+}} {135; BOLT-NEXT: Abbrev: [[ABBREV4]]136; BOLT-NEXT: Tag: DW_TAG_variable137; BOLT-NEXT: DW_IDX_die_offset: 0x00000024138; BOLT-NEXT: DW_IDX_parent: <parent not indexed>139; BOLT-NEXT: }140; BOLT-NEXT: }141; BOLT-NEXT: ]142; BOLT-NEXT: Bucket 6 [143; BOLT-NEXT: Name 8 {144; BOLT-NEXT: Hash: 0xB888030145; BOLT-NEXT: String: {{.+}} "int"146; BOLT-NEXT: Entry @ {{.+}} {147; BOLT-NEXT: Abbrev: [[ABBREV2]]148; BOLT-NEXT: Tag: DW_TAG_base_type149; BOLT-NEXT: DW_IDX_die_offset: 0x0000005d150; BOLT-NEXT: DW_IDX_parent: <parent not indexed>151; BOLT-NEXT: }152; BOLT-NEXT: }153; BOLT-NEXT: ]154; BOLT-NEXT: Bucket 7 [155; BOLT-NEXT: Name 9 {156; BOLT-NEXT: Hash: 0x59796C157; BOLT-NEXT: String: {{.+}} "t3"158; BOLT-NEXT: Entry @ {{.+}} {159; BOLT-NEXT: Abbrev: [[ABBREV1]]160; BOLT-NEXT: Tag: DW_TAG_structure_type161; BOLT-NEXT: DW_IDX_die_offset: 0x0000002f162; BOLT-NEXT: DW_IDX_parent: <parent not indexed>163; BOLT-NEXT: }164; BOLT-NEXT: }165; BOLT-NEXT: Name 10 {166; BOLT-NEXT: Hash: 0x7C9A7F6A167; BOLT-NEXT: String: {{.+}} "main"168; BOLT-NEXT: Entry @ {{.+}} {169; BOLT-NEXT: Abbrev: [[ABBREV5]]170; BOLT-NEXT: Tag: DW_TAG_subprogram171; BOLT-NEXT: DW_IDX_die_offset: 0x00000073172; BOLT-NEXT: DW_IDX_parent: <parent not indexed>173; BOLT-NEXT: }174; BOLT-NEXT: }175; BOLT-NEXT: ]176; BOLT-NEXT: Bucket 8 [177; BOLT-NEXT: Name 11 {178; BOLT-NEXT: Hash: 0x8CFC710C179; BOLT-NEXT: String: {{.+}} "(anonymous namespace)"180; BOLT-NEXT: Entry @ 0x14d {181; BOLT-NEXT: Abbrev: [[ABBREV6]]182; BOLT-NEXT: Tag: DW_TAG_namespace183; BOLT-NEXT: DW_IDX_die_offset: 0x00000061184; BOLT-NEXT: DW_IDX_parent: <parent not indexed>185; BOLT-NEXT: }186; BOLT-NEXT: }187; BOLT-NEXT: ]188; BOLT-NEXT: Bucket 9 [189; BOLT-NEXT: EMPTY190; BOLT-NEXT: ]191; BOLT-NEXT: Bucket 10 [192; BOLT-NEXT: EMPTY193; BOLT-NEXT: ]194; BOLT-NEXT: }195