383 lines · plain
1RUN: dsymutil -f -o - -oso-prepend-path=%p/.. %p/../Inputs/basic-lto-dw4.macho.x86_64 | llvm-dwarfdump -a - | FileCheck %s2 3RUN: dsymutil --linker parallel -f -o - -oso-prepend-path=%p/.. \4RUN: %p/../Inputs/basic-lto-dw4.macho.x86_64 | llvm-dwarfdump -a - \5RUN: | FileCheck %s6 7CHECK: file format Mach-O 64-bit x86-648 9CHECK: debug_info contents10 11CHECK: Compile Unit: {{.*}} version = 0x000412CHECK: DW_TAG_compile_unit13CHECK: DW_AT_producer ("clang version 3.7.0 ")14CHECK: DW_AT_language (DW_LANG_C99)15CHECK: DW_AT_name ("basic1.c")16CHECK: DW_AT_stmt_list (0x00000000)17CHECK: DW_AT_comp_dir ("/Inputs")18CHECK: DW_AT_low_pc (0x0000000100000f40)19CHECK: DW_AT_high_pc (0x0000000100000f4b)20CHECK: DW_TAG_subprogram21CHECK: DW_AT_low_pc (0x0000000100000f40)22CHECK: DW_AT_high_pc (0x0000000100000f4b)23CHECK: DW_AT_frame_base (DW_OP_reg6 RBP)24CHECK: DW_AT_name ("main")25CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c")26CHECK: DW_AT_prototyped (true)27CHECK: DW_AT_type (0x00000000000000a128CHECK: DW_AT_external (true)29CHECK: DW_TAG_formal_parameter30CHECK: DW_AT_location (DW_OP_reg5 RDI, DW_OP_piece 0x4)31CHECK: DW_AT_name ("argc")32CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c")33CHECK: DW_AT_type (0x00000000000000a134CHECK: DW_TAG_formal_parameter35CHECK: DW_AT_location (DW_OP_reg4 RSI)36CHECK: DW_AT_name ("argv")37CHECK: DW_AT_type (0x0000006038CHECK: NULL39CHECK: DW_TAG_pointer_type40CHECK: DW_AT_type (0x0000006541CHECK: DW_TAG_pointer_type42CHECK: DW_TAG_const_type43CHECK: DW_TAG_base_type44CHECK: DW_AT_name ("char")45CHECK: DW_AT_encoding (DW_ATE_signed_char)46CHECK: DW_AT_byte_size (0x01)47CHECK: NULL48 49CHECK: Compile Unit:{{.*}} version = 0x000450 51CHECK: DW_TAG_compile_unit52CHECK: DW_AT_producer ("clang version 3.7.0 ")53CHECK: DW_AT_language (DW_LANG_C99)54CHECK: DW_AT_name ("basic2.c")55CHECK: DW_AT_stmt_list (0x00000044)56CHECK: DW_AT_low_pc (0x0000000100000f50)57CHECK: DW_AT_high_pc (0x0000000100000f87)58CHECK: DW_TAG_base_type59CHECK: DW_AT_name ("int")60CHECK: DW_TAG_variable61CHECK: DW_AT_name ("baz")62CHECK: DW_AT_location (DW_OP_addr 0x100001000)63CHECK: DW_TAG_variable64CHECK: DW_AT_name ("private_int")65CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c")66CHECK: DW_AT_location (DW_OP_addr 0x100001008)67CHECK: DW_TAG_subprogram68CHECK: DW_AT_name ("inc")69CHECK: DW_AT_type (0x000000a170CHECK: DW_AT_inline (DW_INL_inlined)71CHECK: DW_TAG_subprogram72CHECK: DW_AT_low_pc (0x0000000100000f50)73CHECK: DW_AT_high_pc (0x0000000100000f87)74CHECK: DW_AT_frame_base (DW_OP_reg6 RBP)75CHECK: DW_AT_name ("foo")76CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c")77CHECK: DW_AT_prototyped (true)78CHECK: DW_AT_type (0x000000a179CHECK: DW_TAG_formal_parameter80CHECK: DW_AT_location (0x0000000081CHECK: [0x0000000100000f50, 0x0000000100000f5c): DW_OP_reg5 RDI, DW_OP_piece 0x4)82CHECK: DW_AT_name ("arg")83CHECK: DW_AT_type (0x000000a184CHECK: DW_TAG_inlined_subroutine85CHECK: DW_AT_abstract_origin (0x000000d2 "inc")86CHECK: DW_AT_low_pc (0x0000000100000f61)87CHECK: DW_AT_high_pc (0x0000000100000f70)88CHECK: NULL89CHECK: NULL90 91CHECK: Compile Unit: {{.*}} version = 0x000492 93CHECK: DW_TAG_compile_unit94CHECK: DW_AT_producer ("clang version 3.7.0 ")95CHECK: DW_AT_name ("basic3.c")96CHECK: DW_AT_stmt_list (0x0000009a)97CHECK: DW_AT_low_pc (0x0000000100000f90)98CHECK: DW_AT_high_pc (0x0000000100000fb4)99CHECK: DW_TAG_variable100CHECK: DW_AT_name ("val")101CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic3.c")102CHECK: DW_AT_location (DW_OP_addr 0x100001004)103CHECK: DW_TAG_volatile_type104CHECK: DW_TAG_subprogram105CHECK: DW_AT_name ("inc")106CHECK: DW_AT_inline (DW_INL_inlined)107CHECK: DW_TAG_subprogram108CHECK: DW_AT_low_pc (0x0000000100000f90)109CHECK: DW_AT_high_pc (0x0000000100000fb4)110CHECK: DW_AT_frame_base (DW_OP_reg6 RBP)111CHECK: DW_AT_name ("bar")112CHECK: DW_TAG_formal_parameter113CHECK: DW_AT_location (0x00000025114CHECK: [0x0000000100000f90, 0x0000000100000f9f): DW_OP_reg5 RDI, DW_OP_piece 0x4115CHECK: [0x0000000100000fa9, 0x0000000100000fad): DW_OP_reg5 RDI, DW_OP_piece 0x4)116CHECK: DW_AT_name ("arg")117CHECK: DW_TAG_inlined_subroutine118CHECK: DW_AT_abstract_origin (0x0000015f "inc")119CHECK: DW_AT_ranges (0x00000000120CHECK: [0x0000000100000f94, 0x0000000100000f9a)121CHECK: [0x0000000100000f9f, 0x0000000100000fa7))122 123CHECK: NULL124CHECK: NULL125 126 127CHECK: .debug_loc contents:128CHECK-NEXT: 0x00000000:129CHECK-NEXT: (0x0000000000000000, 0x000000000000000c): DW_OP_reg5 RDI, DW_OP_piece 0x4130CHECK-NOT: :131CHECK: 0x00000025:132CHECK-NEXT: (0x0000000000000000, 0x000000000000000f): DW_OP_reg5 RDI, DW_OP_piece 0x4133CHECK-NEXT: (0x0000000000000019, 0x000000000000001d): DW_OP_reg5 RDI, DW_OP_piece 0x4134 135 136CHECK: .debug_aranges contents:137CHECK-NEXT: Address Range Header: length = 0x0000002c, format = DWARF32, version = 0x0002, cu_offset = 0x00000000, addr_size = 0x08, seg_size = 0x00138CHECK-NEXT: [0x0000000100000f40, 0x0000000100000f4b)139CHECK-NEXT: Address Range Header: length = 0x0000002c, format = DWARF32, version = 0x0002, cu_offset = 0x00000077, addr_size = 0x08, seg_size = 0x00140CHECK-NEXT: [0x0000000100000f50, 0x0000000100000f87)141CHECK-NEXT: Address Range Header: length = 0x0000002c, format = DWARF32, version = 0x0002, cu_offset = 0x0000011b, addr_size = 0x08, seg_size = 0x00142CHECK-NEXT: [0x0000000100000f90, 0x0000000100000fb4)143 144CHECK: .debug_line contents:145CHECK: file_names[ 1]:146CHECK-NEXT: name: "basic1.c"147CHECK-NEXT: dir_index: 0148CHECK: Address Line Column File ISA Discriminator OpIndex Flags149CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- ------- -------------150CHECK-NEXT: 0x0000000100000f40 26 0 1 0 0 0 is_stmt151CHECK-NEXT: 0x0000000100000f44 27 10 1 0 0 0 is_stmt prologue_end152CHECK-NEXT: 0x0000000100000f49 27 3 1 0 0 0153CHECK-NEXT: 0x0000000100000f4b 27 3 1 0 0 0 end_sequence154 155CHECK: file_names[ 1]:156CHECK-NEXT: name: "basic2.c"157CHECK-NEXT: dir_index: 0158CHECK: Address Line Column File ISA Discriminator OpIndex Flags159CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- ------- -------------160CHECK-NEXT: 0x0000000100000f50 19 0 1 0 0 0 is_stmt161CHECK-NEXT: 0x0000000100000f54 20 18 1 0 0 0 is_stmt prologue_end162CHECK-NEXT: 0x0000000100000f5a 20 17 1 0 0 0163CHECK-NEXT: 0x0000000100000f5c 20 10 1 0 0 0164CHECK-NEXT: 0x0000000100000f61 15 10 1 0 0 0 is_stmt165CHECK-NEXT: 0x0000000100000f70 20 23 1 0 0 0 is_stmt166CHECK-NEXT: 0x0000000100000f74 20 36 1 0 0 0167CHECK-NEXT: 0x0000000100000f83 20 31 1 0 0 0168CHECK-NEXT: 0x0000000100000f85 20 3 1 0 0 0169CHECK-NEXT: 0x0000000100000f87 20 3 1 0 0 0 end_sequence170 171CHECK: file_names[ 1]:172CHECK-NEXT: name: "basic3.c"173CHECK-NEXT: dir_index: 0174CHECK: Address Line Column File ISA Discriminator OpIndex Flags175CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- ------- -------------176CHECK-NEXT: 0x0000000100000f90 16 0 1 0 0 0 is_stmt177CHECK-NEXT: 0x0000000100000f94 12 10 1 0 0 0 is_stmt prologue_end178CHECK-NEXT: 0x0000000100000f9a 17 7 1 0 0 0 is_stmt179CHECK-NEXT: 0x0000000100000f9f 12 10 1 0 0 0 is_stmt180CHECK-NEXT: 0x0000000100000fa7 20 1 1 0 0 0 is_stmt181CHECK-NEXT: 0x0000000100000fa9 19 18 1 0 0 0 is_stmt182CHECK-NEXT: 0x0000000100000fab 19 10 1 0 0 0183CHECK-NEXT: 0x0000000100000fb2 20 1 1 0 0 0 is_stmt184CHECK-NEXT: 0x0000000100000fb4 20 1 1 0 0 0 is_stmt end_sequence185 186CHECK-NOT: .debug_pubnames contents:187CHECK-NOT: .debug_pubtypes contents:188 189CHECK: .apple_names contents:190CHECK-NEXT: Header {191CHECK-NEXT: Magic: 0x48415348192CHECK-NEXT: Version: 0x1193CHECK-NEXT: Hash function: 0x0194CHECK-NEXT: Bucket count: 7195CHECK-NEXT: Hashes count: 7196CHECK-NEXT: HeaderData length: 12197CHECK-NEXT: }198CHECK-NEXT: DIE offset base: 0199CHECK-NEXT: Number of atoms: 1200CHECK-NEXT: Size of each hash data entry: 4201CHECK-NEXT: Atoms [202CHECK-NEXT: Atom 0 {203CHECK-NEXT: Type: DW_ATOM_die_offset204CHECK-NEXT: Form: DW_FORM_data4205CHECK-NEXT: }206CHECK-NEXT: ]207CHECK-NEXT: Bucket 0 [208CHECK-NEXT: Hash 0xb8860c2 [209CHECK-NEXT: Name@0x74 {210CHECK-NEXT: String: 0x00000048 "baz"211CHECK-NEXT: Data 0 [212CHECK-NEXT: Atom[0]: 0x000000a8213CHECK-NEXT: ]214CHECK-NEXT: }215CHECK-NEXT: ]216CHECK-NEXT: Hash 0xb88801f [217CHECK-NEXT: Name@0x84 {218CHECK-NEXT: String: 0x00000058 "inc"219CHECK-NEXT: Data 0 [220CHECK-NEXT: Atom[0]: 0x00000106221CHECK-NEXT: ]222CHECK-NEXT: Data 1 [223CHECK-NEXT: Atom[0]: 0x00000193224CHECK-NEXT: ]225CHECK-NEXT: }226CHECK-NEXT: ]227CHECK-NEXT: ]228CHECK-NEXT: Bucket 1 [229CHECK-NEXT: EMPTY230CHECK-NEXT: ]231CHECK-NEXT: Bucket 2 [232CHECK-NEXT: Hash 0xfed12c6a [233CHECK-NEXT: Name@0x98 {234CHECK-NEXT: String: 0x0000004c "private_int"235CHECK-NEXT: Data 0 [236CHECK-NEXT: Atom[0]: 0x000000bd237CHECK-NEXT: ]238CHECK-NEXT: }239CHECK-NEXT: ]240CHECK-NEXT: ]241CHECK-NEXT: Bucket 3 [242CHECK-NEXT: Hash 0xb88b5c8 [243CHECK-NEXT: Name@0xa8 {244CHECK-NEXT: String: 0x0000006d "val"245CHECK-NEXT: Data 0 [246CHECK-NEXT: Atom[0]: 0x00000145247CHECK-NEXT: ]248CHECK-NEXT: }249CHECK-NEXT: ]250CHECK-NEXT: Hash 0x7c9a7f6a [251CHECK-NEXT: Name@0xb8 {252CHECK-NEXT: String: 0x00000027 "main"253CHECK-NEXT: Data 0 [254CHECK-NEXT: Atom[0]: 0x0000002a255CHECK-NEXT: ]256CHECK-NEXT: }257CHECK-NEXT: ]258CHECK-NEXT: ]259CHECK-NEXT: Bucket 4 [260CHECK-NEXT: EMPTY261CHECK-NEXT: ]262CHECK-NEXT: Bucket 5 [263CHECK-NEXT: Hash 0xb887389 [264CHECK-NEXT: Name@0xc8 {265CHECK-NEXT: String: 0x0000005c "foo"266CHECK-NEXT: Data 0 [267CHECK-NEXT: Atom[0]: 0x000000de268CHECK-NEXT: ]269CHECK-NEXT: }270CHECK-NEXT: ]271CHECK-NEXT: ]272CHECK-NEXT: Bucket 6 [273CHECK-NEXT: Hash 0xb8860ba [274CHECK-NEXT: Name@0xd8 {275CHECK-NEXT: String: 0x00000071 "bar"276CHECK-NEXT: Data 0 [277CHECK-NEXT: Atom[0]: 0x0000016b278CHECK-NEXT: ]279CHECK-NEXT: }280CHECK-NEXT: ]281CHECK-NEXT: ]282 283CHECK: .apple_types contents:284CHECK-NEXT: Header {285CHECK-NEXT: Magic: 0x48415348286CHECK-NEXT: Version: 0x1287CHECK-NEXT: Hash function: 0x0288CHECK-NEXT: Bucket count: 2289CHECK-NEXT: Hashes count: 2290CHECK-NEXT: HeaderData length: 24291CHECK-NEXT: }292CHECK-NEXT: DIE offset base: 0293CHECK-NEXT: Number of atoms: 4294CHECK-NEXT: Size of each hash data entry: 11295CHECK-NEXT: Atoms [296CHECK-NEXT: Atom 0 {297CHECK-NEXT: Type: DW_ATOM_die_offset298CHECK-NEXT: Form: DW_FORM_data4299CHECK-NEXT: }300CHECK-NEXT: Atom 1 {301CHECK-NEXT: Type: DW_ATOM_die_tag302CHECK-NEXT: Form: DW_FORM_data2303CHECK-NEXT: }304CHECK-NEXT: Atom 2 {305CHECK-NEXT: Type: DW_ATOM_type_flags306CHECK-NEXT: Form: DW_FORM_data1307CHECK-NEXT: }308CHECK-NEXT: Atom 3 {309CHECK-NEXT: Type: DW_ATOM_qual_name_hash310CHECK-NEXT: Form: DW_FORM_data4311CHECK-NEXT: }312CHECK-NEXT: ]313CHECK-NEXT: Bucket 0 [314CHECK-NEXT: Hash 0xb888030 [315CHECK-NEXT: Name@0x44 {316CHECK-NEXT: String: 0x00000044 "int"317CHECK-NEXT: Data 0 [318CHECK-NEXT: Atom[0]: 0x000000a1319CHECK-NEXT: Atom[1]: 0x0024 (DW_TAG_base_type)320CHECK-NEXT: Atom[2]: 0x00321CHECK-NEXT: Atom[3]: 0x0c3a28a4322CHECK-NEXT: ]323CHECK-NEXT: }324CHECK-NEXT: ]325CHECK-NEXT: ]326CHECK-NEXT: Bucket 1 [327CHECK-NEXT: Hash 0x7c952063 [328CHECK-NEXT: Name@0x5b {329CHECK-NEXT: String: 0x00000036 "char"330CHECK-NEXT: Data 0 [331CHECK-NEXT: Atom[0]: 0x0000006f332CHECK-NEXT: Atom[1]: 0x0024 (DW_TAG_base_type)333CHECK-NEXT: Atom[2]: 0x00334CHECK-NEXT: Atom[3]: 0x937bd757335CHECK-NEXT: ]336CHECK-NEXT: }337CHECK-NEXT: ]338CHECK-NEXT: ]339 340CHECK: .apple_namespaces contents:341CHECK-NEXT: Header {342CHECK-NEXT: Magic: 0x48415348343CHECK-NEXT: Version: 0x1344CHECK-NEXT: Hash function: 0x0345CHECK-NEXT: Bucket count: 1346CHECK-NEXT: Hashes count: 0347CHECK-NEXT: HeaderData length: 12348CHECK-NEXT: }349CHECK-NEXT: DIE offset base: 0350CHECK-NEXT: Number of atoms: 1351CHECK-NEXT: Size of each hash data entry: 4352CHECK-NEXT: Atoms [353CHECK-NEXT: Atom 0 {354CHECK-NEXT: Type: DW_ATOM_die_offset355CHECK-NEXT: Form: DW_FORM_data4356CHECK-NEXT: }357CHECK-NEXT: ]358CHECK-NEXT: Bucket 0 [359CHECK-NEXT: EMPTY360CHECK-NEXT: ]361 362CHECK: .apple_objc contents:363CHECK-NEXT: Header {364CHECK-NEXT: Magic: 0x48415348365CHECK-NEXT: Version: 0x1366CHECK-NEXT: Hash function: 0x0367CHECK-NEXT: Bucket count: 1368CHECK-NEXT: Hashes count: 0369CHECK-NEXT: HeaderData length: 12370CHECK-NEXT: }371CHECK-NEXT: DIE offset base: 0372CHECK-NEXT: Number of atoms: 1373CHECK-NEXT: Size of each hash data entry: 4374CHECK-NEXT: Atoms [375CHECK-NEXT: Atom 0 {376CHECK-NEXT: Type: DW_ATOM_die_offset377CHECK-NEXT: Form: DW_FORM_data4378CHECK-NEXT: }379CHECK-NEXT: ]380CHECK-NEXT: Bucket 0 [381CHECK-NEXT: EMPTY382CHECK-NEXT: ]383