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