brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.5 KiB · eefb2ba Raw
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