1b61ac4a8Savl-llvm# RUN: yaml2obj %s -o %t.o 2b61ac4a8Savl-llvm# RUN: echo '---' > %t2.map 3b61ac4a8Savl-llvm# RUN: echo "triple: 'x86_64-apple-darwin'" >> %t2.map 4b61ac4a8Savl-llvm# RUN: echo 'objects:' >> %t2.map 5b61ac4a8Savl-llvm# RUN: echo " - filename: '%t.o'" >> %t2.map 6b61ac4a8Savl-llvm# RUN: echo ' symbols:' >> %t2.map 7b61ac4a8Savl-llvm# RUN: echo ' - { sym: __Z3foov, objAddr: 0x0, binAddr: 0x10000, size: 0x10 }' >> %t2.map 8b61ac4a8Savl-llvm# RUN: echo '...' >> %t2.map 9*f1fdfe68SAlexey Lapshin# RUN: dsymutil --linker=parallel -y %t2.map -f -o - | llvm-dwarfdump -a - | FileCheck %s 10b61ac4a8Savl-llvm 11b61ac4a8Savl-llvm## This test checks debug info for the template parameters of the class. 12b61ac4a8Savl-llvm## (i.e. number of the parameters is correct, names of the parameters 13b61ac4a8Savl-llvm## are correct, types of the parameters are correct) 14b61ac4a8Savl-llvm 15b61ac4a8Savl-llvm# CHECK: file format Mach-O 64-bit x86-64 16b61ac4a8Savl-llvm# CHECK: 0x0000000b: DW_TAG_compile_unit 17b61ac4a8Savl-llvm# CHECK: DW_AT_producer{{.*}}"llvm DWARFLinkerParallel library version 18b61ac4a8Savl-llvm# CHECK: DW_AT_language{{.*}}DW_LANG_C_plus_plus 19b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"__artificial_type_unit" 20b61ac4a8Savl-llvm# CHECK: 0x[[CHAR:[0-9a-f]*]]: DW_TAG_base_type 21b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"char" 22b61ac4a8Savl-llvm# CHECK: 0x[[FLOAT:[0-9a-f]*]]: DW_TAG_base_type 23b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"float" 24b61ac4a8Savl-llvm# CHECK: 0x[[INT:[0-9a-f]*]]: DW_TAG_base_type 25b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"int" 26b61ac4a8Savl-llvm# CHECK: 0x[[CLASS:[0-9a-f]*]]: DW_TAG_class_type 27b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"parametrized-class" 28b61ac4a8Savl-llvm# CHECK: DW_TAG_template_type_parameter 29b61ac4a8Savl-llvm# CHECK: DW_AT_type{{.*}}(0x[[INT]] "int" 30b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"Type1" 31b61ac4a8Savl-llvm# CHECK: DW_AT_type{{.*}}(0x[[CHAR]] "char" 32b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"Type2" 33b61ac4a8Savl-llvm# CHECK: DW_AT_type{{.*}}(0x[[FLOAT]] "float" 34b61ac4a8Savl-llvm# CHECK: DW_AT_name{{.*}}"Type3" 35b61ac4a8Savl-llvm# CHECK: DW_TAG_compile_unit 36b61ac4a8Savl-llvm# CHECK: DW_TAG_variable 37b61ac4a8Savl-llvm# CHECK: DW_AT_type (0x00000000[[CLASS]] 38b61ac4a8Savl-llvm 39b61ac4a8Savl-llvm 40b61ac4a8Savl-llvm--- !mach-o 41b61ac4a8Savl-llvmFileHeader: 42b61ac4a8Savl-llvm magic: 0xFEEDFACF 43b61ac4a8Savl-llvm cputype: 0x01000007 44b61ac4a8Savl-llvm cpusubtype: 0x00000003 45b61ac4a8Savl-llvm filetype: 0x00000001 46b61ac4a8Savl-llvm ncmds: 2 47b61ac4a8Savl-llvm sizeofcmds: 376 48b61ac4a8Savl-llvm flags: 0x00002000 49b61ac4a8Savl-llvm reserved: 0x00000000 50b61ac4a8Savl-llvmLoadCommands: 51b61ac4a8Savl-llvm - cmd: LC_SEGMENT_64 52b61ac4a8Savl-llvm cmdsize: 232 53b61ac4a8Savl-llvm segname: '' 54b61ac4a8Savl-llvm vmaddr: 0x00 55b61ac4a8Savl-llvm vmsize: 0x300 56b61ac4a8Savl-llvm fileoff: 0x300 57b61ac4a8Savl-llvm filesize: 0x300 58b61ac4a8Savl-llvm maxprot: 7 59b61ac4a8Savl-llvm initprot: 7 60b61ac4a8Savl-llvm nsects: 2 61b61ac4a8Savl-llvm flags: 0 62b61ac4a8Savl-llvm Sections: 63b61ac4a8Savl-llvm - sectname: __debug_abbrev 64b61ac4a8Savl-llvm segname: __DWARF 65b61ac4a8Savl-llvm addr: 0x000000000000000F 66b61ac4a8Savl-llvm size: 0x37 67b61ac4a8Savl-llvm offset: 0x00000380 68b61ac4a8Savl-llvm align: 0 69b61ac4a8Savl-llvm reloff: 0x00000000 70b61ac4a8Savl-llvm nreloc: 0 71b61ac4a8Savl-llvm flags: 0x02000000 72b61ac4a8Savl-llvm reserved1: 0x00000000 73b61ac4a8Savl-llvm reserved2: 0x00000000 74b61ac4a8Savl-llvm reserved3: 0x00000000 75b61ac4a8Savl-llvm - sectname: __debug_info 76b61ac4a8Savl-llvm segname: __DWARF 77b61ac4a8Savl-llvm addr: 0x000000000000100 78b61ac4a8Savl-llvm size: 0x7B 79b61ac4a8Savl-llvm offset: 0x000003B7 80b61ac4a8Savl-llvm align: 0 81b61ac4a8Savl-llvm reloff: 0x00000600 82b61ac4a8Savl-llvm nreloc: 1 83b61ac4a8Savl-llvm flags: 0x02000000 84b61ac4a8Savl-llvm reserved1: 0x00000000 85b61ac4a8Savl-llvm reserved2: 0x00000000 86b61ac4a8Savl-llvm reserved3: 0x00000000 87b61ac4a8Savl-llvm relocations: 88b61ac4a8Savl-llvm - address: 0x000001FC 89b61ac4a8Savl-llvm symbolnum: 1 90b61ac4a8Savl-llvm pcrel: true 91b61ac4a8Savl-llvm length: 3 92b61ac4a8Savl-llvm extern: false 93b61ac4a8Savl-llvm type: 0 94b61ac4a8Savl-llvm scattered: false 95b61ac4a8Savl-llvm value: 0 96b61ac4a8Savl-llvm - cmd: LC_SYMTAB 97b61ac4a8Savl-llvm cmdsize: 24 98b61ac4a8Savl-llvm symoff: 0x700 99b61ac4a8Savl-llvm nsyms: 1 100b61ac4a8Savl-llvm stroff: 0x710 101b61ac4a8Savl-llvm strsize: 10 102b61ac4a8Savl-llvmLinkEditData: 103b61ac4a8Savl-llvm NameList: 104b61ac4a8Savl-llvm - n_strx: 1 105b61ac4a8Savl-llvm n_type: 0x0F 106b61ac4a8Savl-llvm n_sect: 1 107b61ac4a8Savl-llvm n_desc: 0 108b61ac4a8Savl-llvm n_value: 0 109b61ac4a8Savl-llvm StringTable: 110b61ac4a8Savl-llvm - '' 111b61ac4a8Savl-llvm - '__Z3foov' 112b61ac4a8Savl-llvm - '' 113b61ac4a8Savl-llvmDWARF: 114b61ac4a8Savl-llvm debug_abbrev: 115b61ac4a8Savl-llvm - Table: 116b61ac4a8Savl-llvm - Tag: DW_TAG_compile_unit 117b61ac4a8Savl-llvm Children: DW_CHILDREN_yes 118b61ac4a8Savl-llvm Attributes: 119b61ac4a8Savl-llvm - Attribute: DW_AT_producer 120b61ac4a8Savl-llvm Form: DW_FORM_string 121b61ac4a8Savl-llvm - Attribute: DW_AT_language 122b61ac4a8Savl-llvm Form: DW_FORM_data2 123b61ac4a8Savl-llvm - Tag: DW_TAG_class_type 124b61ac4a8Savl-llvm Children: DW_CHILDREN_yes 125b61ac4a8Savl-llvm Attributes: 126b61ac4a8Savl-llvm - Attribute: DW_AT_name 127b61ac4a8Savl-llvm Form: DW_FORM_string 128b61ac4a8Savl-llvm - Tag: DW_TAG_template_type_parameter 129b61ac4a8Savl-llvm Children: DW_CHILDREN_no 130b61ac4a8Savl-llvm Attributes: 131b61ac4a8Savl-llvm - Attribute: DW_AT_type 132b61ac4a8Savl-llvm Form: DW_FORM_ref_addr 133b61ac4a8Savl-llvm - Attribute: DW_AT_name 134b61ac4a8Savl-llvm Form: DW_FORM_string 135b61ac4a8Savl-llvm - Tag: DW_TAG_template_value_parameter 136b61ac4a8Savl-llvm Children: DW_CHILDREN_no 137b61ac4a8Savl-llvm Attributes: 138b61ac4a8Savl-llvm - Attribute: DW_AT_type 139b61ac4a8Savl-llvm Form: DW_FORM_ref_addr 140b61ac4a8Savl-llvm - Attribute: DW_AT_name 141b61ac4a8Savl-llvm Form: DW_FORM_string 142b61ac4a8Savl-llvm - Attribute: DW_AT_const_value 143b61ac4a8Savl-llvm Form: DW_FORM_data4 144b61ac4a8Savl-llvm - Tag: DW_TAG_base_type 145b61ac4a8Savl-llvm Children: DW_CHILDREN_no 146b61ac4a8Savl-llvm Attributes: 147b61ac4a8Savl-llvm - Attribute: DW_AT_name 148b61ac4a8Savl-llvm Form: DW_FORM_string 149b61ac4a8Savl-llvm - Tag: DW_TAG_variable 150b61ac4a8Savl-llvm Children: DW_CHILDREN_no 151b61ac4a8Savl-llvm Attributes: 152b61ac4a8Savl-llvm - Attribute: DW_AT_name 153b61ac4a8Savl-llvm Form: DW_FORM_string 154b61ac4a8Savl-llvm - Attribute: DW_AT_const_value 155b61ac4a8Savl-llvm Form: DW_FORM_data4 156b61ac4a8Savl-llvm - Attribute: DW_AT_type 157b61ac4a8Savl-llvm Form: DW_FORM_ref_addr 158b61ac4a8Savl-llvm debug_info: 159b61ac4a8Savl-llvm - Version: 4 160b61ac4a8Savl-llvm Entries: 161b61ac4a8Savl-llvm - AbbrCode: 1 162b61ac4a8Savl-llvm Values: 163b61ac4a8Savl-llvm - CStr: by_hand 164b61ac4a8Savl-llvm - Value: 0x04 165b61ac4a8Savl-llvm - AbbrCode: 2 166b61ac4a8Savl-llvm Values: 167b61ac4a8Savl-llvm - CStr: parametrized-class 168b61ac4a8Savl-llvm - AbbrCode: 3 169b61ac4a8Savl-llvm Values: 170b61ac4a8Savl-llvm - Value: 0x0000005B 171b61ac4a8Savl-llvm - CStr: Type1 172b61ac4a8Savl-llvm - AbbrCode: 3 173b61ac4a8Savl-llvm Values: 174b61ac4a8Savl-llvm - Value: 0x00000060 175b61ac4a8Savl-llvm - CStr: Type2 176b61ac4a8Savl-llvm - AbbrCode: 4 177b61ac4a8Savl-llvm Values: 178b61ac4a8Savl-llvm - Value: 0x0000005B 179b61ac4a8Savl-llvm - CStr: Type1 180b61ac4a8Savl-llvm - Value: 0x0FE 181b61ac4a8Savl-llvm - AbbrCode: 3 182b61ac4a8Savl-llvm Values: 183b61ac4a8Savl-llvm - Value: 0x00000066 184b61ac4a8Savl-llvm - CStr: Type3 185b61ac4a8Savl-llvm - AbbrCode: 0 186b61ac4a8Savl-llvm - AbbrCode: 5 187b61ac4a8Savl-llvm Values: 188b61ac4a8Savl-llvm - CStr: int 189b61ac4a8Savl-llvm - AbbrCode: 5 190b61ac4a8Savl-llvm Values: 191b61ac4a8Savl-llvm - CStr: char 192b61ac4a8Savl-llvm - AbbrCode: 5 193b61ac4a8Savl-llvm Values: 194b61ac4a8Savl-llvm - CStr: float 195b61ac4a8Savl-llvm - AbbrCode: 6 196b61ac4a8Savl-llvm Values: 197b61ac4a8Savl-llvm - CStr: var 198b61ac4a8Savl-llvm - Value: 0x000000FF 199b61ac4a8Savl-llvm - Value: 0x00000016 200b61ac4a8Savl-llvm - AbbrCode: 0 201b61ac4a8Savl-llvm... 202