1 # RUN: yaml2obj %s | obj2yaml | FileCheck %s 2 3 --- !mach-o 4 IsLittleEndian: true 5 FileHeader: 6 magic: 0xFEEDFACF 7 cputype: 0x01000007 8 cpusubtype: 0x00000003 9 filetype: 0x00000001 10 ncmds: 4 11 sizeofcmds: 1392 12 flags: 0x00002000 13 reserved: 0x00000000 14 LoadCommands: 15 - cmd: LC_SEGMENT_64 16 cmdsize: 1272 17 segname: '' 18 vmaddr: 0 19 vmsize: 1086 20 fileoff: 1424 21 filesize: 1086 22 maxprot: 7 23 initprot: 7 24 nsects: 15 25 flags: 0 26 Sections: 27 - sectname: __text 28 segname: __TEXT 29 addr: 0x0000000000000000 30 size: 93 31 offset: 0x00000590 32 align: 4 33 reloff: 0x000009D0 34 nreloc: 3 35 flags: 0x80000400 36 reserved1: 0x00000000 37 reserved2: 0x00000000 38 reserved3: 0x00000000 39 - sectname: __cstring 40 segname: __TEXT 41 addr: 0x000000000000005D 42 size: 48 43 offset: 0x000005ED 44 align: 0 45 reloff: 0x00000000 46 nreloc: 0 47 flags: 0x00000002 48 reserved1: 0x00000000 49 reserved2: 0x00000000 50 reserved3: 0x00000000 51 - sectname: __debug_str 52 segname: __DWARF 53 addr: 0x000000000000008D 54 size: 182 55 offset: 0x0000061D 56 align: 0 57 reloff: 0x00000000 58 nreloc: 0 59 flags: 0x02000000 60 reserved1: 0x00000000 61 reserved2: 0x00000000 62 reserved3: 0x00000000 63 - sectname: __debug_loc 64 segname: __DWARF 65 addr: 0x0000000000000143 66 size: 0 67 offset: 0x000006D3 68 align: 0 69 reloff: 0x00000000 70 nreloc: 0 71 flags: 0x02000000 72 reserved1: 0x00000000 73 reserved2: 0x00000000 74 reserved3: 0x00000000 75 - sectname: __debug_abbrev 76 segname: __DWARF 77 addr: 0x0000000000000143 78 size: 104 79 offset: 0x000006D3 80 align: 0 81 reloff: 0x00000000 82 nreloc: 0 83 flags: 0x02000000 84 reserved1: 0x00000000 85 reserved2: 0x00000000 86 reserved3: 0x00000000 87 - sectname: __debug_info 88 segname: __DWARF 89 addr: 0x00000000000001AB 90 size: 146 91 offset: 0x0000073B 92 align: 0 93 reloff: 0x000009E8 94 nreloc: 2 95 flags: 0x02000000 96 reserved1: 0x00000000 97 reserved2: 0x00000000 98 reserved3: 0x00000000 99 - sectname: __debug_ranges 100 segname: __DWARF 101 addr: 0x000000000000023D 102 size: 0 103 offset: 0x000007CD 104 align: 0 105 reloff: 0x00000000 106 nreloc: 0 107 flags: 0x02000000 108 reserved1: 0x00000000 109 reserved2: 0x00000000 110 reserved3: 0x00000000 111 - sectname: __debug_macinfo 112 segname: __DWARF 113 addr: 0x000000000000023D 114 size: 1 115 offset: 0x000007CD 116 align: 0 117 reloff: 0x00000000 118 nreloc: 0 119 flags: 0x02000000 120 reserved1: 0x00000000 121 reserved2: 0x00000000 122 reserved3: 0x00000000 123 - sectname: __apple_names 124 segname: __DWARF 125 addr: 0x000000000000023E 126 size: 60 127 offset: 0x000007CE 128 align: 0 129 reloff: 0x00000000 130 nreloc: 0 131 flags: 0x02000000 132 reserved1: 0x00000000 133 reserved2: 0x00000000 134 reserved3: 0x00000000 135 - sectname: __apple_objc 136 segname: __DWARF 137 addr: 0x000000000000027A 138 size: 36 139 offset: 0x0000080A 140 align: 0 141 reloff: 0x00000000 142 nreloc: 0 143 flags: 0x02000000 144 reserved1: 0x00000000 145 reserved2: 0x00000000 146 reserved3: 0x00000000 147 - sectname: __apple_namespac 148 segname: __DWARF 149 addr: 0x000000000000029E 150 size: 36 151 offset: 0x0000082E 152 align: 0 153 reloff: 0x00000000 154 nreloc: 0 155 flags: 0x02000000 156 reserved1: 0x00000000 157 reserved2: 0x00000000 158 reserved3: 0x00000000 159 - sectname: __apple_types 160 segname: __DWARF 161 addr: 0x00000000000002C2 162 size: 133 163 offset: 0x00000852 164 align: 0 165 reloff: 0x00000000 166 nreloc: 0 167 flags: 0x02000000 168 reserved1: 0x00000000 169 reserved2: 0x00000000 170 reserved3: 0x00000000 171 - sectname: __compact_unwind 172 segname: __LD 173 addr: 0x0000000000000348 174 size: 32 175 offset: 0x000008D8 176 align: 3 177 reloff: 0x000009F8 178 nreloc: 1 179 flags: 0x02000000 180 reserved1: 0x00000000 181 reserved2: 0x00000000 182 reserved3: 0x00000000 183 - sectname: __eh_frame 184 segname: __TEXT 185 addr: 0x0000000000000368 186 size: 64 187 offset: 0x000008F8 188 align: 3 189 reloff: 0x00000000 190 nreloc: 0 191 flags: 0x6800000B 192 reserved1: 0x00000000 193 reserved2: 0x00000000 194 reserved3: 0x00000000 195 - sectname: __debug_line 196 segname: __DWARF 197 addr: 0x00000000000003A8 198 size: 150 199 offset: 0x00000938 200 align: 0 201 reloff: 0x00000A00 202 nreloc: 1 203 flags: 0x02000000 204 reserved1: 0x00000000 205 reserved2: 0x00000000 206 reserved3: 0x00000000 207 - cmd: LC_VERSION_MIN_MACOSX 208 cmdsize: 16 209 version: 658432 210 sdk: 0 211 - cmd: LC_SYMTAB 212 cmdsize: 24 213 symoff: 2568 214 nsyms: 2 215 stroff: 2600 216 strsize: 36 217 - cmd: LC_DYSYMTAB 218 cmdsize: 80 219 ilocalsym: 0 220 nlocalsym: 0 221 iextdefsym: 0 222 nextdefsym: 1 223 iundefsym: 1 224 nundefsym: 1 225 tocoff: 0 226 ntoc: 0 227 modtaboff: 0 228 nmodtab: 0 229 extrefsymoff: 0 230 nextrefsyms: 0 231 indirectsymoff: 0 232 nindirectsyms: 0 233 extreloff: 0 234 nextrel: 0 235 locreloff: 0 236 nlocrel: 0 237 LinkEditData: 238 NameList: 239 - n_strx: 24 240 n_type: 0x0F 241 n_sect: 1 242 n_desc: 0 243 n_value: 0 244 - n_strx: 1 245 n_type: 0x01 246 n_sect: 0 247 n_desc: 0 248 n_value: 0 249 StringTable: 250 - '' 251 - _compilerrt_abort_impl 252 - ___absvdi2 253 - '' 254 DWARF: 255 debug_str: 256 - 'clang version 4.0.0 (trunk 290181) (llvm/trunk 290209)' 257 - ../compiler-rt/lib/builtins/absvdi2.c 258 - /Users/cbieneman/dev/open-source/llvm-build-rel 259 - int 260 - di_int 261 - long long int 262 - __absvdi2 263 - a 264 - N 265 - t 266 debug_abbrev: 267 - Code: 0x00000001 268 Tag: DW_TAG_compile_unit 269 Children: DW_CHILDREN_yes 270 Attributes: 271 - Attribute: DW_AT_producer 272 Form: DW_FORM_strp 273 - Attribute: DW_AT_language 274 Form: DW_FORM_data2 275 - Attribute: DW_AT_name 276 Form: DW_FORM_strp 277 - Attribute: DW_AT_stmt_list 278 Form: DW_FORM_sec_offset 279 - Attribute: DW_AT_comp_dir 280 Form: DW_FORM_strp 281 - Attribute: DW_AT_low_pc 282 Form: DW_FORM_addr 283 - Attribute: DW_AT_high_pc 284 Form: DW_FORM_data4 285 - Code: 0x00000002 286 Tag: DW_TAG_base_type 287 Children: DW_CHILDREN_no 288 Attributes: 289 - Attribute: DW_AT_name 290 Form: DW_FORM_strp 291 - Attribute: DW_AT_encoding 292 Form: DW_FORM_data1 293 - Attribute: DW_AT_byte_size 294 Form: DW_FORM_data1 295 - Code: 0x00000003 296 Tag: DW_TAG_typedef 297 Children: DW_CHILDREN_no 298 Attributes: 299 - Attribute: DW_AT_type 300 Form: DW_FORM_ref4 301 - Attribute: DW_AT_name 302 Form: DW_FORM_strp 303 - Attribute: DW_AT_decl_file 304 Form: DW_FORM_data1 305 - Attribute: DW_AT_decl_line 306 Form: DW_FORM_data1 307 - Code: 0x00000004 308 Tag: DW_TAG_subprogram 309 Children: DW_CHILDREN_yes 310 Attributes: 311 - Attribute: DW_AT_low_pc 312 Form: DW_FORM_addr 313 - Attribute: DW_AT_high_pc 314 Form: DW_FORM_data4 315 - Attribute: DW_AT_frame_base 316 Form: DW_FORM_exprloc 317 - Attribute: DW_AT_name 318 Form: DW_FORM_strp 319 - Attribute: DW_AT_decl_file 320 Form: DW_FORM_data1 321 - Attribute: DW_AT_decl_line 322 Form: DW_FORM_data1 323 - Attribute: DW_AT_prototyped 324 Form: DW_FORM_flag_present 325 - Attribute: DW_AT_type 326 Form: DW_FORM_ref4 327 - Attribute: DW_AT_external 328 Form: DW_FORM_flag_present 329 - Code: 0x00000005 330 Tag: DW_TAG_formal_parameter 331 Children: DW_CHILDREN_no 332 Attributes: 333 - Attribute: DW_AT_location 334 Form: DW_FORM_exprloc 335 - Attribute: DW_AT_name 336 Form: DW_FORM_strp 337 - Attribute: DW_AT_decl_file 338 Form: DW_FORM_data1 339 - Attribute: DW_AT_decl_line 340 Form: DW_FORM_data1 341 - Attribute: DW_AT_type 342 Form: DW_FORM_ref4 343 - Code: 0x00000006 344 Tag: DW_TAG_variable 345 Children: DW_CHILDREN_no 346 Attributes: 347 - Attribute: DW_AT_location 348 Form: DW_FORM_exprloc 349 - Attribute: DW_AT_name 350 Form: DW_FORM_strp 351 - Attribute: DW_AT_decl_file 352 Form: DW_FORM_data1 353 - Attribute: DW_AT_decl_line 354 Form: DW_FORM_data1 355 - Attribute: DW_AT_type 356 Form: DW_FORM_ref4 357 - Code: 0x00000007 358 Tag: DW_TAG_const_type 359 Children: DW_CHILDREN_no 360 Attributes: 361 - Attribute: DW_AT_type 362 Form: DW_FORM_ref4 363 ... 364 365 #CHECK: DWARF: 366 #CHECK: debug_str: 367 #CHECK: - 'clang version 4.0.0 (trunk 290181) (llvm/trunk 290209)' 368 #CHECK: - ../compiler-rt/lib/builtins/absvdi2.c 369 #CHECK: - /Users/cbieneman/dev/open-source/llvm-build-rel 370 #CHECK: - int 371 #CHECK: - di_int 372 #CHECK: - long long int 373 #CHECK: - __absvdi2 374 #CHECK: - a 375 #CHECK: - N 376 #CHECK: - t 377 #CHECK: debug_abbrev: 378 #CHECK: - Code: 0x00000001 379 #CHECK: Tag: DW_TAG_compile_unit 380 #CHECK: Children: DW_CHILDREN_yes 381 #CHECK: Attributes: 382 #CHECK: - Attribute: DW_AT_producer 383 #CHECK: Form: DW_FORM_strp 384 #CHECK: - Attribute: DW_AT_language 385 #CHECK: Form: DW_FORM_data2 386 #CHECK: - Attribute: DW_AT_name 387 #CHECK: Form: DW_FORM_strp 388 #CHECK: - Attribute: DW_AT_stmt_list 389 #CHECK: Form: DW_FORM_sec_offset 390 #CHECK: - Attribute: DW_AT_comp_dir 391 #CHECK: Form: DW_FORM_strp 392 #CHECK: - Attribute: DW_AT_low_pc 393 #CHECK: Form: DW_FORM_addr 394 #CHECK: - Attribute: DW_AT_high_pc 395 #CHECK: Form: DW_FORM_data4 396 #CHECK: - Code: 0x00000002 397 #CHECK: Tag: DW_TAG_base_type 398 #CHECK: Children: DW_CHILDREN_no 399 #CHECK: Attributes: 400 #CHECK: - Attribute: DW_AT_name 401 #CHECK: Form: DW_FORM_strp 402 #CHECK: - Attribute: DW_AT_encoding 403 #CHECK: Form: DW_FORM_data1 404 #CHECK: - Attribute: DW_AT_byte_size 405 #CHECK: Form: DW_FORM_data1 406 #CHECK: - Code: 0x00000003 407 #CHECK: Tag: DW_TAG_typedef 408 #CHECK: Children: DW_CHILDREN_no 409 #CHECK: Attributes: 410 #CHECK: - Attribute: DW_AT_type 411 #CHECK: Form: DW_FORM_ref4 412 #CHECK: - Attribute: DW_AT_name 413 #CHECK: Form: DW_FORM_strp 414 #CHECK: - Attribute: DW_AT_decl_file 415 #CHECK: Form: DW_FORM_data1 416 #CHECK: - Attribute: DW_AT_decl_line 417 #CHECK: Form: DW_FORM_data1 418 #CHECK: - Code: 0x00000004 419 #CHECK: Tag: DW_TAG_subprogram 420 #CHECK: Children: DW_CHILDREN_yes 421 #CHECK: Attributes: 422 #CHECK: - Attribute: DW_AT_low_pc 423 #CHECK: Form: DW_FORM_addr 424 #CHECK: - Attribute: DW_AT_high_pc 425 #CHECK: Form: DW_FORM_data4 426 #CHECK: - Attribute: DW_AT_frame_base 427 #CHECK: Form: DW_FORM_exprloc 428 #CHECK: - Attribute: DW_AT_name 429 #CHECK: Form: DW_FORM_strp 430 #CHECK: - Attribute: DW_AT_decl_file 431 #CHECK: Form: DW_FORM_data1 432 #CHECK: - Attribute: DW_AT_decl_line 433 #CHECK: Form: DW_FORM_data1 434 #CHECK: - Attribute: DW_AT_prototyped 435 #CHECK: Form: DW_FORM_flag_present 436 #CHECK: - Attribute: DW_AT_type 437 #CHECK: Form: DW_FORM_ref4 438 #CHECK: - Attribute: DW_AT_external 439 #CHECK: Form: DW_FORM_flag_present 440 #CHECK: - Code: 0x00000005 441 #CHECK: Tag: DW_TAG_formal_parameter 442 #CHECK: Children: DW_CHILDREN_no 443 #CHECK: Attributes: 444 #CHECK: - Attribute: DW_AT_location 445 #CHECK: Form: DW_FORM_exprloc 446 #CHECK: - Attribute: DW_AT_name 447 #CHECK: Form: DW_FORM_strp 448 #CHECK: - Attribute: DW_AT_decl_file 449 #CHECK: Form: DW_FORM_data1 450 #CHECK: - Attribute: DW_AT_decl_line 451 #CHECK: Form: DW_FORM_data1 452 #CHECK: - Attribute: DW_AT_type 453 #CHECK: Form: DW_FORM_ref4 454 #CHECK: - Code: 0x00000006 455 #CHECK: Tag: DW_TAG_variable 456 #CHECK: Children: DW_CHILDREN_no 457 #CHECK: Attributes: 458 #CHECK: - Attribute: DW_AT_location 459 #CHECK: Form: DW_FORM_exprloc 460 #CHECK: - Attribute: DW_AT_name 461 #CHECK: Form: DW_FORM_strp 462 #CHECK: - Attribute: DW_AT_decl_file 463 #CHECK: Form: DW_FORM_data1 464 #CHECK: - Attribute: DW_AT_decl_line 465 #CHECK: Form: DW_FORM_data1 466 #CHECK: - Attribute: DW_AT_type 467 #CHECK: Form: DW_FORM_ref4 468 #CHECK: - Code: 0x00000007 469 #CHECK: Tag: DW_TAG_const_type 470 #CHECK: Children: DW_CHILDREN_no 471 #CHECK: Attributes: 472 #CHECK: - Attribute: DW_AT_type 473 #CHECK: Form: DW_FORM_ref4 474 #CHECK: ... 475