1# template <typename T> 2# class foo {}; 3# 4# template <template <typename T> class CT = foo> 5# class baz {}; 6# 7# template <typename T = char, int i = 3, bool b = true, 8# typename c = foo<T>> 9# class bar {}; 10# 11# int main() { 12# bar<> br; 13# baz<> bz; 14# return 0; 15# } 16# 17# YAML generated on Linux using obj2yaml on the above program 18# compiled with Clang. 19--- !ELF 20FileHeader: 21 Class: ELFCLASS64 22 Data: ELFDATA2LSB 23 Type: ET_REL 24 Machine: EM_AARCH64 25 SectionHeaderStringTable: .strtab 26Sections: 27 - Name: .text 28 Type: SHT_PROGBITS 29 Flags: [ SHF_ALLOC, SHF_EXECINSTR ] 30 AddressAlign: 0x4 31 Content: FF4300D1E0031F2AFF0F00B9FF430091C0035FD6 32 - Name: .linker-options 33 Type: SHT_LLVM_LINKER_OPTIONS 34 Flags: [ SHF_EXCLUDE ] 35 AddressAlign: 0x1 36 Content: '' 37 - Name: .debug_abbrev 38 Type: SHT_PROGBITS 39 AddressAlign: 0x1 40 Content: 011101252513050325721710171B25111B120673170000022E01111B1206401803253A0B3B0B49133F190000033400021803253A0B3B0B4913000004240003253E0B0B0B0000050201360B03250B0B3A0B3B0B0000062F00491303251E190000073000491303251E191C0D0000083000491303251E191C0F000009020003253C1900000A8682010003251E19904225000000 41 - Name: .debug_info 42 Type: SHT_PROGBITS 43 AddressAlign: 0x1 44 Content: 7F00000005000108000000000100210001000000000000000002001400000000000000020014000000016F03000B490000000302910B05000C4D0000000302910A0E000D78000000000404050405050D010009066E000000070749000000080308720000000A0106760000000C000406080104090201090B0505110100050A0F100000 45 - Name: .debug_str_offsets 46 Type: SHT_PROGBITS 47 AddressAlign: 0x1 48 Content: 4C00000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 49 - Name: .comment 50 Type: SHT_PROGBITS 51 Flags: [ SHF_MERGE, SHF_STRINGS ] 52 AddressAlign: 0x1 53 EntSize: 0x1 54 Content: 00636C616E672076657273696F6E2031362E302E30202868747470733A2F2F6769746875622E636F6D2F6C6C766D2F6C6C766D2D70726F6A65637420343764323862376138323638653337616130646537366238353966343530386533646261633663652900 55 - Name: .note.GNU-stack 56 Type: SHT_PROGBITS 57 AddressAlign: 0x1 58 - Name: .eh_frame 59 Type: SHT_PROGBITS 60 Flags: [ SHF_ALLOC ] 61 AddressAlign: 0x8 62 Content: 1000000000000000017A5200017C1E011B0C1F001800000018000000000000001400000000440E104C0E000000000000 63 - Name: .debug_line 64 Type: SHT_PROGBITS 65 AddressAlign: 0x1 66 Content: 580000000500080037000000010101FB0E0D00010101010000000100000101011F010000000003011F020F051E01000000000019537E33C1D1006B79E3D1C33D6EE6A304000009020000000000000000030A0105050ABD0208000101 67 - Name: .debug_line_str 68 Type: SHT_PROGBITS 69 Flags: [ SHF_MERGE, SHF_STRINGS ] 70 AddressAlign: 0x1 71 EntSize: 0x1 72 Content: 2F686F6D652F6761726465690064656661756C74732E63707000 73 - Name: .rela.debug_info 74 Type: SHT_RELA 75 Flags: [ SHF_INFO_LINK ] 76 Link: .symtab 77 AddressAlign: 0x8 78 Info: .debug_info 79 Relocations: 80 - Offset: 0x8 81 Symbol: .debug_abbrev 82 Type: R_AARCH64_ABS32 83 - Offset: 0x11 84 Symbol: .debug_str_offsets 85 Type: R_AARCH64_ABS32 86 Addend: 8 87 - Offset: 0x15 88 Symbol: .debug_line 89 Type: R_AARCH64_ABS32 90 - Offset: 0x1F 91 Symbol: .debug_addr 92 Type: R_AARCH64_ABS32 93 Addend: 8 94 - Name: .rela.debug_str_offsets 95 Type: SHT_RELA 96 Flags: [ SHF_INFO_LINK ] 97 Link: .symtab 98 AddressAlign: 0x8 99 Info: .debug_str_offsets 100 Relocations: 101 - Offset: 0x8 102 Symbol: .debug_str 103 Type: R_AARCH64_ABS32 104 - Offset: 0xC 105 Symbol: .debug_str 106 Type: R_AARCH64_ABS32 107 Addend: 101 108 - Offset: 0x10 109 Symbol: .debug_str 110 Type: R_AARCH64_ABS32 111 Addend: 114 112 - Offset: 0x14 113 Symbol: .debug_str 114 Type: R_AARCH64_ABS32 115 Addend: 127 116 - Offset: 0x18 117 Symbol: .debug_str 118 Type: R_AARCH64_ABS32 119 Addend: 132 120 - Offset: 0x1C 121 Symbol: .debug_str 122 Type: R_AARCH64_ABS32 123 Addend: 136 124 - Offset: 0x20 125 Symbol: .debug_str 126 Type: R_AARCH64_ABS32 127 Addend: 139 128 - Offset: 0x24 129 Symbol: .debug_str 130 Type: R_AARCH64_ABS32 131 Addend: 144 132 - Offset: 0x28 133 Symbol: .debug_str 134 Type: R_AARCH64_ABS32 135 Addend: 146 136 - Offset: 0x2C 137 Symbol: .debug_str 138 Type: R_AARCH64_ABS32 139 Addend: 148 140 - Offset: 0x30 141 Symbol: .debug_str 142 Type: R_AARCH64_ABS32 143 Addend: 153 144 - Offset: 0x34 145 Symbol: .debug_str 146 Type: R_AARCH64_ABS32 147 Addend: 155 148 - Offset: 0x38 149 Symbol: .debug_str 150 Type: R_AARCH64_ABS32 151 Addend: 165 152 - Offset: 0x3C 153 Symbol: .debug_str 154 Type: R_AARCH64_ABS32 155 Addend: 167 156 - Offset: 0x40 157 Symbol: .debug_str 158 Type: R_AARCH64_ABS32 159 Addend: 198 160 - Offset: 0x44 161 Symbol: .debug_str 162 Type: R_AARCH64_ABS32 163 Addend: 201 164 - Offset: 0x48 165 Symbol: .debug_str 166 Type: R_AARCH64_ABS32 167 Addend: 204 168 - Offset: 0x4C 169 Symbol: .debug_str 170 Type: R_AARCH64_ABS32 171 Addend: 208 172 - Name: .rela.debug_addr 173 Type: SHT_RELA 174 Flags: [ SHF_INFO_LINK ] 175 Link: .symtab 176 AddressAlign: 0x8 177 Info: .debug_addr 178 Relocations: 179 - Offset: 0x8 180 Symbol: .text 181 Type: R_AARCH64_ABS64 182 - Name: .rela.eh_frame 183 Type: SHT_RELA 184 Flags: [ SHF_INFO_LINK ] 185 Link: .symtab 186 AddressAlign: 0x8 187 Info: .eh_frame 188 Relocations: 189 - Offset: 0x1C 190 Symbol: .text 191 Type: R_AARCH64_PREL32 192 - Name: .rela.debug_line 193 Type: SHT_RELA 194 Flags: [ SHF_INFO_LINK ] 195 Link: .symtab 196 AddressAlign: 0x8 197 Info: .debug_line 198 Relocations: 199 - Offset: 0x22 200 Symbol: .debug_line_str 201 Type: R_AARCH64_ABS32 202 - Offset: 0x2E 203 Symbol: .debug_line_str 204 Type: R_AARCH64_ABS32 205 Addend: 13 206 - Offset: 0x48 207 Symbol: .text 208 Type: R_AARCH64_ABS64 209 - Name: .llvm_addrsig 210 Type: SHT_LLVM_ADDRSIG 211 Flags: [ SHF_EXCLUDE ] 212 Link: .symtab 213 AddressAlign: 0x1 214 Offset: 0x818 215 Symbols: [ ] 216 - Type: SectionHeaderTable 217 Sections: 218 - Name: .strtab 219 - Name: .text 220 - Name: .linker-options 221 - Name: .debug_abbrev 222 - Name: .debug_info 223 - Name: .rela.debug_info 224 - Name: .debug_str_offsets 225 - Name: .rela.debug_str_offsets 226 - Name: .debug_str 227 - Name: .debug_addr 228 - Name: .rela.debug_addr 229 - Name: .comment 230 - Name: .note.GNU-stack 231 - Name: .eh_frame 232 - Name: .rela.eh_frame 233 - Name: .debug_line 234 - Name: .rela.debug_line 235 - Name: .debug_line_str 236 - Name: .llvm_addrsig 237 - Name: .symtab 238Symbols: 239 - Name: defaults.cpp 240 Type: STT_FILE 241 Index: SHN_ABS 242 - Name: .text 243 Type: STT_SECTION 244 Section: .text 245 - Name: '$x.0' 246 Section: .text 247 - Name: .debug_abbrev 248 Type: STT_SECTION 249 Section: .debug_abbrev 250 - Name: '$d.1' 251 Section: .debug_abbrev 252 - Name: '$d.2' 253 Section: .debug_info 254 - Name: .debug_str_offsets 255 Type: STT_SECTION 256 Section: .debug_str_offsets 257 - Name: '$d.3' 258 Section: .debug_str_offsets 259 - Name: .debug_str 260 Type: STT_SECTION 261 Section: .debug_str 262 - Name: '$d.4' 263 Section: .debug_str 264 - Name: .debug_addr 265 Type: STT_SECTION 266 Section: .debug_addr 267 - Name: '$d.5' 268 Section: .debug_addr 269 - Name: '$d.6' 270 Section: .comment 271 - Name: '$d.7' 272 Section: .eh_frame 273 - Name: .debug_line 274 Type: STT_SECTION 275 Section: .debug_line 276 - Name: '$d.8' 277 Section: .debug_line 278 - Name: .debug_line_str 279 Type: STT_SECTION 280 Section: .debug_line_str 281 - Name: '$d.9' 282 Section: .debug_line_str 283 - Name: main 284 Type: STT_FUNC 285 Section: .text 286 Binding: STB_GLOBAL 287 Size: 0x14 288DWARF: 289 debug_str: 290 - 'clang version 16.0.0 (https://github.com/llvm/llvm-project 47d28b7a8268e37aa0de76b859f4508e3dbac6ce)' 291 - defaults.cpp 292 - '/home/gardei' 293 - main 294 - int 295 - br 296 - char 297 - T 298 - i 299 - bool 300 - b 301 - 'foo<char>' 302 - c 303 - 'bar<char, 3, true, foo<char> >' 304 - bz 305 - CT 306 - foo 307 - 'baz<foo>' 308 debug_addr: 309 - Length: 0xC 310 Version: 0x5 311 AddressSize: 0x8 312 Entries: 313 - {} 314... 315