brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · ef11ee0 Raw
287 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: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-debug-names-helper.s -o %thelper.o3; RUN: %clang %cflags -gdwarf-5 %tmain.o %thelper.o -o %tmain.exe4; RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections5; RUN: llvm-dwarfdump --debug-info -r 0 --debug-names %tmain.exe.bolt > %tlog.txt6; RUN: cat %tlog.txt | FileCheck -check-prefix=BOLT %s7 8;; Tests that BOLT correctly generates .debug_names section with two CUs9 10; BOLT: [[OFFSET1:0x[0-9a-f]*]]: Compile Unit11; BOLT: [[OFFSET2:0x[0-9a-f]*]]: Compile Unit12; BOLT:       Name Index @ 0x0 {13; BOLT-NEXT:   Header {14; BOLT-NEXT:     Length: 0x1D415; BOLT-NEXT:     Format: DWARF3216; BOLT-NEXT:     Version: 517; BOLT-NEXT:     CU count: 218; BOLT-NEXT:     Local TU count: 019; BOLT-NEXT:     Foreign TU count: 020; BOLT-NEXT:     Bucket count: 1421; BOLT-NEXT:     Name count: 1522; BOLT-NEXT:     Abbreviations table size: 0x3D23; BOLT-NEXT:     Augmentation: 'BOLT'24; BOLT-NEXT:   }25; BOLT-NEXT:   Compilation Unit offsets [26; BOLT-NEXT:     CU[0]: [[OFFSET1]]27; BOLT-NEXT:     CU[1]: [[OFFSET2]]28; BOLT-NEXT:   ]29; BOLT-NEXT:   Abbreviations [30; BOLT-NEXT:     Abbreviation [[ABBREV1:0x[0-9a-f]*]] {31; BOLT-NEXT:       Tag: DW_TAG_structure_type32; BOLT-NEXT:       DW_IDX_compile_unit: DW_FORM_data133; 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_namespace38; BOLT-NEXT:       DW_IDX_compile_unit: DW_FORM_data139; BOLT-NEXT:       DW_IDX_die_offset: DW_FORM_ref440; BOLT-NEXT:       DW_IDX_parent: DW_FORM_flag_present41; BOLT-NEXT:     }42; BOLT-NEXT:     Abbreviation [[ABBREV3:0x[0-9a-f]*]] {43; BOLT-NEXT:       Tag: DW_TAG_subprogram44; BOLT-NEXT:       DW_IDX_compile_unit: DW_FORM_data145; BOLT-NEXT:       DW_IDX_die_offset: DW_FORM_ref446; BOLT-NEXT:       DW_IDX_parent: DW_FORM_flag_present47; BOLT-NEXT:     }48; BOLT-NEXT:     Abbreviation [[ABBREV4:0x[0-9a-f]*]] {49; BOLT-NEXT:       Tag: DW_TAG_base_type50; BOLT-NEXT:       DW_IDX_compile_unit: DW_FORM_data151; BOLT-NEXT:       DW_IDX_die_offset: DW_FORM_ref452; BOLT-NEXT:       DW_IDX_parent: DW_FORM_flag_present53; BOLT-NEXT:     }54; BOLT-NEXT:     Abbreviation [[ABBREV5:0x[0-9a-f]*]] {55; BOLT-NEXT:       Tag: DW_TAG_variable56; BOLT-NEXT:       DW_IDX_compile_unit: DW_FORM_data157; BOLT-NEXT:       DW_IDX_die_offset: DW_FORM_ref458; BOLT-NEXT:       DW_IDX_parent: DW_FORM_flag_present59; BOLT-NEXT:     }60; BOLT-NEXT:       Abbreviation [[ABBREV6:0x[0-9a-f]*]] {61; BOLT-NEXT:         Tag: DW_TAG_structure_type62; BOLT-NEXT:         DW_IDX_compile_unit: DW_FORM_data163; BOLT-NEXT:         DW_IDX_die_offset: DW_FORM_ref464; BOLT-NEXT:         DW_IDX_parent: DW_FORM_ref465; BOLT-NEXT:       }66; BOLT-NEXT:   ]67; BOLT-NEXT:   Bucket 0 [68; BOLT-NEXT:     Name 1 {69; BOLT-NEXT:       Hash: 0x59796C70; BOLT-NEXT:       String: {{.+}} "t3"71; BOLT-NEXT:       Entry @ {{.+}} {72; BOLT-NEXT:         Abbrev: [[ABBREV1]]73; BOLT-NEXT:         Tag: DW_TAG_structure_type74; BOLT-NEXT:         DW_IDX_compile_unit: 0x0075; BOLT-NEXT:         DW_IDX_die_offset: 0x0000002f76; 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 2 {82; BOLT-NEXT:       Hash: 0x7C96E4DB83; BOLT-NEXT:       String: {{.+}} "Foo2"84; BOLT-NEXT:       Entry @ {{.+}} {85; BOLT-NEXT:         Abbrev: [[ABBREV1]]86; BOLT-NEXT:         Tag: DW_TAG_structure_type87; BOLT-NEXT:         DW_IDX_compile_unit: 0x0088; BOLT-NEXT:         DW_IDX_die_offset: 0x000000eb89; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>90; BOLT-NEXT:       }91; BOLT-NEXT:     }92; BOLT-NEXT:   ]93; BOLT-NEXT:   Bucket 2 [94; BOLT-NEXT:     Name 3 {95; BOLT-NEXT:       Hash: 0x8CFC710C96; BOLT-NEXT:       String: {{.+}} "(anonymous namespace)"97; BOLT-NEXT:       Entry @ [[ENTRY:0x[0-9a-f]*]] {98; BOLT-NEXT:         Abbrev: [[ABBREV2]]99; BOLT-NEXT:         Tag: DW_TAG_namespace100; BOLT-NEXT:         DW_IDX_compile_unit: 0x00101; BOLT-NEXT:         DW_IDX_die_offset: 0x00000061102; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>103; BOLT-NEXT:       }104; BOLT-NEXT:     }105; BOLT-NEXT:     Name 4 {106; BOLT-NEXT:       Hash: 0xBA564846107; BOLT-NEXT:       String: {{.+}} "Foo2Int"108; BOLT-NEXT:       Entry @ {{.+}} {109; BOLT-NEXT:         Abbrev: [[ABBREV1]]110; BOLT-NEXT:         Tag: DW_TAG_structure_type111; BOLT-NEXT:         DW_IDX_compile_unit: 0x01112; BOLT-NEXT:         DW_IDX_die_offset: 0x0000005a113; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>114; BOLT-NEXT:       }115; BOLT-NEXT:     }116; BOLT-NEXT:   ]117; BOLT-NEXT:   Bucket 3 [118; BOLT-NEXT:     EMPTY119; BOLT-NEXT:   ]120; BOLT-NEXT:   Bucket 4 [121; BOLT-NEXT:     EMPTY122; BOLT-NEXT:   ]123; BOLT-NEXT:   Bucket 5 [124; BOLT-NEXT:     Name 5 {125; BOLT-NEXT:       Hash: 0xB887389126; BOLT-NEXT:       String: {{.+}} "Foo"127; BOLT-NEXT:       Entry @ {{.+}} {128; BOLT-NEXT:         Abbrev: [[ABBREV1]]129; BOLT-NEXT:         Tag: DW_TAG_structure_type130; BOLT-NEXT:         DW_IDX_compile_unit: 0x00131; BOLT-NEXT:         DW_IDX_die_offset: 0x000000c9132; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>133; BOLT-NEXT:       }134; BOLT-NEXT:     }135; BOLT-NEXT:     Name 6 {136; BOLT-NEXT:       Hash: 0xB887389137; BOLT-NEXT:       String: {{.+}} "foo"138; BOLT-NEXT:       Entry @ {{.+}} {139; BOLT-NEXT:         Abbrev: [[ABBREV3]]140; BOLT-NEXT:         Tag: DW_TAG_subprogram141; BOLT-NEXT:         DW_IDX_compile_unit: 0x01142; BOLT-NEXT:         DW_IDX_die_offset: 0x00000033143; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>144; BOLT-NEXT:       }145; BOLT-NEXT:     }146; BOLT-NEXT:     Name 7 {147; BOLT-NEXT:       Hash: 0x7C952063148; BOLT-NEXT:       String: {{.+}} "char"149; BOLT-NEXT:       Entry @ {{.+}} {150; BOLT-NEXT:         Abbrev: [[ABBREV4]]151; BOLT-NEXT:         Tag: DW_TAG_base_type152; BOLT-NEXT:         DW_IDX_compile_unit: 0x01153; BOLT-NEXT:         DW_IDX_die_offset: 0x0000009f154; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>155; BOLT-NEXT:       }156; BOLT-NEXT:       Entry @ {{.+}} {157; BOLT-NEXT:         Abbrev: [[ABBREV4]]158; BOLT-NEXT:         Tag: DW_TAG_base_type159; BOLT-NEXT:         DW_IDX_compile_unit: 0x00160; BOLT-NEXT:         DW_IDX_die_offset: 0x000000c5161; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>162; BOLT-NEXT:       }163; BOLT-NEXT:     }164; BOLT-NEXT:   ]165; BOLT-NEXT:   Bucket 6 [166; BOLT-NEXT:     Name 8 {167; BOLT-NEXT:       Hash: 0x392140FA168; BOLT-NEXT:       String: {{.+}} "t2<&fooint>"169; BOLT-NEXT:       Entry @ {{.+}} {170; BOLT-NEXT:         Abbrev: [[ABBREV1]]171; BOLT-NEXT:         Tag: DW_TAG_structure_type172; BOLT-NEXT:         DW_IDX_compile_unit: 0x00173; BOLT-NEXT:         DW_IDX_die_offset: 0x0000003f174; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>175; BOLT-NEXT:       }176; BOLT-NEXT:     }177; BOLT-NEXT:     Name 9 {178; BOLT-NEXT:       Hash: 0xFDE48034179; BOLT-NEXT:       String: {{.+}} "fooint"180; BOLT-NEXT:       Entry @ {{.+}} {181; BOLT-NEXT:         Abbrev: [[ABBREV5]]182; BOLT-NEXT:         Tag: DW_TAG_variable183; BOLT-NEXT:         DW_IDX_compile_unit: 0x01184; BOLT-NEXT:         DW_IDX_die_offset: 0x00000024185; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>186; BOLT-NEXT:       }187; BOLT-NEXT:     }188; BOLT-NEXT:   ]189; BOLT-NEXT:   Bucket 7 [190; BOLT-NEXT:     Name 10 {191; BOLT-NEXT:       Hash: 0xB5063D0B192; BOLT-NEXT:       String: {{.+}} "_Z3foov"193; BOLT-NEXT:       Entry @ {{.+}} {194; BOLT-NEXT:         Abbrev: [[ABBREV3]]195; BOLT-NEXT:         Tag: DW_TAG_subprogram196; BOLT-NEXT:         DW_IDX_compile_unit: 0x01197; BOLT-NEXT:         DW_IDX_die_offset: 0x00000033198; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>199; BOLT-NEXT:       }200; BOLT-NEXT:     }201; BOLT-NEXT:   ]202; BOLT-NEXT:   Bucket 8 [203; BOLT-NEXT:     Name 11 {204; BOLT-NEXT:       Hash: 0x5979AC205; BOLT-NEXT:       String: {{.+}} "v1"206; BOLT-NEXT:       Entry @ {{.+}} {207; BOLT-NEXT:         Abbrev: [[ABBREV5]]208; BOLT-NEXT:         Tag: DW_TAG_variable209; BOLT-NEXT:         DW_IDX_compile_unit: 0x00210; BOLT-NEXT:         DW_IDX_die_offset: 0x00000024211; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>212; BOLT-NEXT:       }213; BOLT-NEXT:     }214; BOLT-NEXT:   ]215; BOLT-NEXT:   Bucket 9 [216; BOLT-NEXT:     EMPTY217; BOLT-NEXT:   ]218; BOLT-NEXT:   Bucket 10 [219; BOLT-NEXT:     Name 12 {220; BOLT-NEXT:       Hash: 0xB888030221; BOLT-NEXT:       String: {{.+}} "int"222; BOLT-NEXT:       Entry @ {{.+}} {223; BOLT-NEXT:         Abbrev: [[ABBREV4]]224; BOLT-NEXT:         Tag: DW_TAG_base_type225; BOLT-NEXT:         DW_IDX_compile_unit: 0x01226; BOLT-NEXT:         DW_IDX_die_offset: 0x0000002f227; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>228; BOLT-NEXT:       }229; BOLT-NEXT:       Entry @ {{.+}} {230; BOLT-NEXT:         Abbrev: [[ABBREV4]]231; BOLT-NEXT:         Tag: DW_TAG_base_type232; BOLT-NEXT:         DW_IDX_compile_unit: 0x00233; BOLT-NEXT:         DW_IDX_die_offset: 0x0000005d234; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>235; BOLT-NEXT:       }236; BOLT-NEXT:     }237; BOLT-NEXT:     Name 13 {238; BOLT-NEXT:       Hash: 0xF73809C239; BOLT-NEXT:       String: {{.+}} "Foo2a"240; BOLT-NEXT:       Entry @ {{.+}} {241; BOLT-NEXT:         Abbrev: [[ABBREV1]]242; BOLT-NEXT:         Tag: DW_TAG_structure_type243; BOLT-NEXT:         DW_IDX_compile_unit: 0x01244; BOLT-NEXT:         DW_IDX_die_offset: 0x00000078245; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>246; BOLT-NEXT:       }247; BOLT-NEXT:       Entry @ {{.+}} {248; BOLT-NEXT:         Abbrev: [[ABBREV1]]249; BOLT-NEXT:         Tag: DW_TAG_structure_type250; BOLT-NEXT:         DW_IDX_compile_unit: 0x00251; BOLT-NEXT:         DW_IDX_die_offset: 0x00000104252; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>253; BOLT-NEXT:       }254; BOLT-NEXT:     }255; BOLT-NEXT:     Name 14 {256; BOLT-NEXT:       Hash: 0x7C9A7F6A257; BOLT-NEXT:       String: {{.+}} "main"258; BOLT-NEXT:       Entry @ {{.+}} {259; BOLT-NEXT:         Abbrev: [[ABBREV3]]260; BOLT-NEXT:         Tag: DW_TAG_subprogram261; BOLT-NEXT:         DW_IDX_compile_unit: 0x00262; BOLT-NEXT:         DW_IDX_die_offset: 0x00000073263; BOLT-NEXT:         DW_IDX_parent: <parent not indexed>264; BOLT-NEXT:       }265; BOLT-NEXT:     }266; BOLT-NEXT:   ]267; BOLT-NEXT:   Bucket 11 [268; BOLT-NEXT:     EMPTY269; BOLT-NEXT:   ]270; BOLT-NEXT:   Bucket 12 [271; BOLT-NEXT:     Name 15 {272; BOLT-NEXT:       Hash: 0x59796A273; BOLT-NEXT:       String: {{.+}} "t1"274; BOLT-NEXT:       Entry @ {{.+}} {275; BOLT-NEXT:         Abbrev: [[ABBREV6]]276; BOLT-NEXT:         Tag: DW_TAG_structure_type277; BOLT-NEXT:         DW_IDX_compile_unit: 0x00278; BOLT-NEXT:         DW_IDX_die_offset: 0x00000062279; BOLT-NEXT:         DW_IDX_parent: Entry @ [[ENTRY]]280; BOLT-NEXT:       }281; BOLT-NEXT:     }282; BOLT-NEXT:   ]283; BOLT-NEXT:   Bucket 13 [284; BOLT-NEXT:     EMPTY285; BOLT-NEXT:   ]286; BOLT-NEXT: }287