1RUN: cp %p/../Inputs/basic.macho.x86_64 %t1 2RUN: dsymutil -accelerator=Pub -f -oso-prepend-path=%p/.. %t1 3RUN: llvm-dwarfdump -a %t1.dwarf | FileCheck %s 4RUN: dsymutil -accelerator=Pub -f -o %t2 -oso-prepend-path=%p/.. \ 5RUN: %p/../Inputs/basic.macho.x86_64 6RUN: llvm-dwarfdump -a %t2 | FileCheck %s 7RUN: dsymutil -accelerator=Pub -f -o - -oso-prepend-path=%p/.. \ 8RUN: %p/../Inputs/basic.macho.x86_64 | llvm-dwarfdump -a - | \ 9RUN: FileCheck %s --check-prefixes=CHECK,BASIC,PUB 10RUN: dsymutil -accelerator=Pub -f -o - -oso-prepend-path=%p/.. \ 11RUN: %p/../Inputs/basic-archive.macho.x86_64 | llvm-dwarfdump -a - \ 12RUN: | FileCheck %s --check-prefixes=CHECK,ARCHIVE,PUB 13RUN: dsymutil -accelerator=Pub -dump-debug-map -oso-prepend-path=%p/.. \ 14RUN: %p/../Inputs/basic.macho.x86_64 | dsymutil -accelerator=Pub -f -y \ 15RUN: -o - - | llvm-dwarfdump -a - | FileCheck %s \ 16RUN: --check-prefixes=CHECK,BASIC,PUB 17RUN: dsymutil -accelerator=Pub -dump-debug-map -oso-prepend-path=%p/.. \ 18RUN: %p/../Inputs/basic-archive.macho.x86_64 | dsymutil -accelerator=Pub \ 19RUN: -f -o - -y - | llvm-dwarfdump -a - | FileCheck %s \ 20RUN: --check-prefixes=CHECK,ARCHIVE,PUB 21 22### --------------------------------------- 23### Repeat the same steps for --linker parallel 24 25RUN: dsymutil --linker parallel -accelerator=Pub -f -oso-prepend-path=%p/.. %t1 26RUN: llvm-dwarfdump -a %t1.dwarf | FileCheck %s 27RUN: dsymutil --linker parallel -accelerator=Pub -f -o %t2 -oso-prepend-path=%p/.. \ 28RUN: %p/../Inputs/basic.macho.x86_64 29RUN: llvm-dwarfdump -a %t2 | FileCheck %s 30RUN: dsymutil --linker parallel -accelerator=Pub -f -o - -oso-prepend-path=%p/.. \ 31RUN: %p/../Inputs/basic.macho.x86_64 | llvm-dwarfdump -a - | \ 32RUN: FileCheck %s --check-prefixes=CHECK,BASIC,PUB 33RUN: dsymutil --linker parallel -accelerator=Pub -f -o - -oso-prepend-path=%p/.. \ 34RUN: %p/../Inputs/basic-archive.macho.x86_64 | llvm-dwarfdump -a - | \ 35RUN: FileCheck %s --check-prefixes=CHECK,ARCHIVE,PUB 36RUN: dsymutil --linker parallel -accelerator=Pub -dump-debug-map \ 37RUN: -oso-prepend-path=%p/.. %p/../Inputs/basic.macho.x86_64 \ 38RUN: | dsymutil -accelerator=Pub -f -y -o - - | llvm-dwarfdump \ 39RUN: -a - | FileCheck %s --check-prefixes=CHECK,BASIC,PUB 40RUN: dsymutil --linker parallel -accelerator=Pub -dump-debug-map \ 41RUN: -oso-prepend-path=%p/.. %p/../Inputs/basic-archive.macho.x86_64 \ 42RUN: | dsymutil -accelerator=Pub -f -o - -y - | llvm-dwarfdump -a - | \ 43RUN: FileCheck %s --check-prefixes=CHECK,ARCHIVE,PUB 44 45CHECK: file format Mach-O 64-bit x86-64 46 47CHECK: debug_info contents 48 49CHECK: Compile Unit: 50 51CHECK: DW_TAG_compile_unit 52CHECK: DW_AT_producer ("Apple LLVM version 6.0 (clang-600.0.39) (based on LLVM 3.5svn)") 53CHECK: DW_AT_language (DW_LANG_C99) 54CHECK: DW_AT_name ("basic1.c") 55CHECK: DW_AT_stmt_list (0x00000000) 56CHECK: DW_AT_comp_dir ("/Inputs") 57CHECK: DW_AT_low_pc (0x0000000100000ea0) 58CHECK: DW_TAG_subprogram 59CHECK: DW_AT_name ("main") 60CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") 61CHECK: DW_AT_decl_line (23) 62CHECK: DW_AT_prototyped (0x01) 63CHECK: DW_AT_type (0x00000063 64CHECK: DW_AT_external (0x01) 65CHECK: DW_AT_accessibility (DW_ACCESS_public) 66CHECK: DW_AT_low_pc (0x0000000100000ea0) 67CHECK: DW_AT_high_pc (0x0000000100000ec4) 68CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) 69CHECK: DW_TAG_formal_parameter 70CHECK: DW_AT_name ("argc") 71CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") 72CHECK: DW_AT_decl_line (23) 73CHECK: DW_AT_type (0x00000063 74CHECK: DW_AT_location (DW_OP_fbreg -8) 75CHECK: DW_TAG_formal_parameter 76CHECK: DW_AT_name ("argv") 77CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic1.c") 78CHECK: DW_AT_decl_line (23) 79CHECK: DW_AT_type (0x0000006a 80CHECK: DW_AT_location (DW_OP_fbreg -16) 81CHECK: NULL 82CHECK: DW_TAG_base_type 83CHECK: DW_AT_name ("int") 84CHECK: DW_AT_encoding (DW_ATE_signed) 85CHECK: DW_AT_byte_size (0x04) 86CHECK: DW_TAG_pointer_type 87CHECK: DW_AT_type (0x0000006f 88CHECK: DW_TAG_pointer_type 89CHECK: DW_AT_type (0x00000074 90CHECK: DW_TAG_const_type 91CHECK: DW_AT_type (0x00000079 92CHECK: DW_TAG_base_type 93CHECK: DW_AT_name ("char") 94CHECK: DW_AT_encoding (DW_ATE_signed_char) 95CHECK: DW_AT_byte_size (0x01) 96CHECK: NULL 97 98CHECK: Compile Unit: 99 100CHECK: DW_TAG_compile_unit 101CHECK: DW_AT_producer ("Apple LLVM version 6.0 (clang-600.0.39) (based on LLVM 3.5svn)") 102CHECK: DW_AT_name ("basic2.c") 103CHECK: DW_AT_stmt_list (0x0000003f) 104CHECK: DW_AT_comp_dir ("/Inputs") 105CHECK: DW_AT_low_pc (0x0000000100000ed0) 106CHECK: DW_TAG_base_type 107CHECK: DW_AT_name ("int") 108CHECK: DW_TAG_variable 109CHECK: DW_AT_name ("private_int") 110CHECK: DW_AT_type (0x000000a7 111CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") 112BASIC: DW_AT_location (DW_OP_addr 0x100001008) 113ARCHIVE: DW_AT_location (DW_OP_addr 0x100001004) 114CHECK: DW_TAG_variable 115CHECK: DW_AT_name ("baz") 116CHECK: DW_AT_type (0x000000a7 117CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") 118CHECK: DW_AT_location (DW_OP_addr 0x100001000) 119CHECK: DW_TAG_subprogram 120CHECK: DW_AT_name ("foo") 121CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic2.c") 122CHECK: DW_AT_type (0x000000a7 123CHECK: DW_AT_low_pc (0x0000000100000ed0) 124CHECK: DW_AT_high_pc (0x0000000100000f19) 125CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) 126CHECK: DW_TAG_formal_parameter 127CHECK: DW_AT_name ("arg") 128CHECK: DW_AT_type (0x000000a7 129CHECK: DW_AT_location (DW_OP_fbreg -4) 130CHECK: NULL 131CHECK: DW_TAG_subprogram 132CHECK: DW_AT_name ("inc") 133CHECK: DW_AT_type (0x000000a7 134CHECK: DW_AT_low_pc (0x0000000100000f20) 135CHECK: DW_AT_high_pc (0x0000000100000f37) 136CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) 137CHECK: NULL 138 139CHECK: Compile Unit: 140 141CHECK: DW_TAG_compile_unit 142CHECK: DW_AT_producer ("Apple LLVM version 6.0 (clang-600.0.39) (based on LLVM 3.5svn)") 143CHECK: DW_AT_name ("basic3.c") 144CHECK: DW_AT_stmt_list (0x00000093) 145CHECK: DW_AT_comp_dir ("/Inputs") 146CHECK: DW_AT_low_pc (0x0000000100000f40) 147CHECK: DW_TAG_variable 148CHECK: DW_AT_name ("val") 149CHECK: DW_AT_type (0x00000162 150CHECK: DW_AT_decl_file ("/Inputs{{[/\\]}}basic3.c") 151BASIC: DW_AT_location (DW_OP_addr 0x100001004) 152ARCHIVE: DW_AT_location (DW_OP_addr 0x100001008) 153CHECK: DW_TAG_volatile_type 154CHECK: DW_AT_type (0x00000167 155CHECK: DW_TAG_base_type 156CHECK: DW_AT_name ("int") 157CHECK: DW_TAG_subprogram 158CHECK: DW_AT_name ("bar") 159CHECK: DW_AT_type (0x00000167 160CHECK: DW_AT_low_pc (0x0000000100000f40) 161CHECK: DW_AT_high_pc (0x0000000100000f84) 162CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) 163CHECK: DW_TAG_formal_parameter 164CHECK: DW_AT_name ("arg") 165CHECK: DW_AT_type (0x00000167 166CHECK: DW_AT_location (DW_OP_fbreg -8) 167CHECK: NULL 168CHECK: DW_TAG_subprogram 169CHECK: DW_AT_name ("inc") 170CHECK: DW_AT_type (0x00000167 171CHECK: DW_AT_low_pc (0x0000000100000f90) 172CHECK: DW_AT_high_pc (0x0000000100000fa9) 173CHECK: DW_AT_frame_base (DW_OP_reg6 RBP) 174 175CHECK: NULL 176 177CHECK-NOT: .debug_loc contents 178 179CHECK:.debug_aranges contents: 180CHECK-NEXT:Address Range Header: length = 0x0000002c, format = DWARF32, version = 0x0002, cu_offset = 0x00000000, addr_size = 0x08, seg_size = 0x00 181CHECK-NEXT:[0x0000000100000ea0, 0x0000000100000ec4) 182CHECK-NEXT:Address Range Header: length = 0x0000003c, format = DWARF32, version = 0x0002, cu_offset = 0x00000081, addr_size = 0x08, seg_size = 0x00 183CHECK-NEXT:[0x0000000100000ed0, 0x0000000100000f19) 184CHECK-NEXT:[0x0000000100000f20, 0x0000000100000f37) 185CHECK-NEXT:Address Range Header: length = 0x0000003c, format = DWARF32, version = 0x0002, cu_offset = 0x00000126, addr_size = 0x08, seg_size = 0x00 186CHECK-NEXT:[0x0000000100000f40, 0x0000000100000f84) 187CHECK-NEXT:[0x0000000100000f90, 0x0000000100000fa9) 188 189CHECK: .debug_line contents: 190CHECK: file_names[ 1]: 191CHECK-NEXT: name: "basic1.c" 192CHECK-NEXT: dir_index: 0 193CHECK: Address Line Column File ISA Discriminator OpIndex Flags 194CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- ------- ------------- 195CHECK-NEXT: 0x0000000100000ea0 23 0 1 0 0 0 is_stmt 196CHECK-NEXT: 0x0000000100000eb6 24 0 1 0 0 0 is_stmt prologue_end 197CHECK-NEXT: 0x0000000100000ec4 24 0 1 0 0 0 is_stmt end_sequence 198 199CHECK: file_names[ 1]: 200CHECK-NEXT: name: "basic2.c" 201CHECK-NEXT: dir_index: 0 202CHECK: Address Line Column File ISA Discriminator OpIndex Flags 203CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- ------- ------------- 204CHECK-NEXT: 0x0000000100000ed0 19 0 1 0 0 0 is_stmt 205CHECK-NEXT: 0x0000000100000ee2 20 0 1 0 0 0 is_stmt prologue_end 206CHECK-NEXT: 0x0000000100000f19 20 0 1 0 0 0 is_stmt end_sequence 207CHECK-NEXT: 0x0000000100000f20 14 0 1 0 0 0 is_stmt 208CHECK-NEXT: 0x0000000100000f24 15 0 1 0 0 0 is_stmt prologue_end 209CHECK-NEXT: 0x0000000100000f37 15 0 1 0 0 0 is_stmt end_sequence 210 211CHECK: file_names[ 1]: 212CHECK-NEXT: name: "basic3.c" 213CHECK-NEXT: dir_index: 0 214CHECK: Address Line Column File ISA Discriminator OpIndex Flags 215CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- ------- ------------- 216CHECK-NEXT: 0x0000000100000f40 16 0 1 0 0 0 is_stmt 217CHECK-NEXT: 0x0000000100000f4b 17 0 1 0 0 0 is_stmt prologue_end 218CHECK-NEXT: 0x0000000100000f58 18 0 1 0 0 0 is_stmt 219CHECK-NEXT: 0x0000000100000f6c 19 0 1 0 0 0 is_stmt 220CHECK-NEXT: 0x0000000100000f7b 20 0 1 0 0 0 is_stmt 221CHECK-NEXT: 0x0000000100000f84 20 0 1 0 0 0 is_stmt end_sequence 222CHECK-NEXT: 0x0000000100000f90 11 0 1 0 0 0 is_stmt 223CHECK-NEXT: 0x0000000100000f9b 12 0 1 0 0 0 is_stmt prologue_end 224CHECK-NEXT: 0x0000000100000fa9 12 0 1 0 0 0 is_stmt end_sequence 225 226PUB: .debug_pubnames contents: 227PUB-NEXT: length = 0x00000017, format = DWARF32, version = 0x0002, unit_offset = 0x00000000, unit_size = 0x00000081 228PUB-NEXT: Offset Name 229PUB-NEXT: 0x00000026 "main" 230PUB-NEXT: length = 0x00000036, format = DWARF32, version = 0x0002, unit_offset = 0x00000081, unit_size = 0x000000a5 231PUB-NEXT: Offset Name 232PUB-NEXT: 0x0000002d "private_int" 233PUB-NEXT: 0x00000042 "baz" 234PUB-NEXT: 0x00000057 "foo" 235PUB-NEXT: 0x00000086 "inc" 236PUB-NEXT: length = 0x00000026, format = DWARF32, version = 0x0002, unit_offset = 0x00000126, unit_size = 0x00000096 237PUB-NEXT: Offset Name 238PUB-NEXT: 0x00000026 "val" 239PUB-NEXT: 0x00000048 "bar" 240PUB-NEXT: 0x00000077 "inc" 241 242PUB: .debug_pubtypes contents: 243PUB-NEXT: length = 0x0000001f, format = DWARF32, version = 0x0002, unit_offset = 0x00000000, unit_size = 0x00000081 244PUB-NEXT: Offset Name 245PUB-NEXT: 0x00000063 "int" 246PUB-NEXT: 0x00000079 "char" 247PUB-NEXT: length = 0x00000016, format = DWARF32, version = 0x0002, unit_offset = 0x00000081, unit_size = 0x000000a5 248PUB-NEXT: Offset Name 249PUB-NEXT: 0x00000026 "int" 250PUB-NEXT: length = 0x00000016, format = DWARF32, version = 0x0002, unit_offset = 0x00000126, unit_size = 0x00000096 251PUB-NEXT: Offset Name 252PUB-NEXT: 0x00000041 "int" 253