summaryrefslogtreecommitdiff
path: root/test/MC/MachO
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-12-30 11:46:15 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-12-30 11:46:15 +0000
commitdd58ef019b700900793a1eb48b52123db01b654e (patch)
treefcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /test/MC/MachO
parent2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff)
Notes
Diffstat (limited to 'test/MC/MachO')
-rw-r--r--test/MC/MachO/AArch64/darwin-ARM64-local-label-diff.s11
-rw-r--r--test/MC/MachO/AArch64/reloc-errors.s10
-rw-r--r--test/MC/MachO/ARM/bad-darwin-ARM-reloc.s6
-rw-r--r--test/MC/MachO/ARM/compact-unwind-armv7k.s124
-rw-r--r--test/MC/MachO/ARM/darwin-ARM-reloc.s315
-rw-r--r--test/MC/MachO/ARM/darwin-Thumb-reloc.s241
-rw-r--r--test/MC/MachO/ARM/data-in-code.s53
-rw-r--r--test/MC/MachO/ARM/empty-function-nop.ll24
-rw-r--r--test/MC/MachO/ARM/ios-version-min-load-command.s18
-rw-r--r--test/MC/MachO/ARM/long-call-branch-island-relocation.s22
-rw-r--r--test/MC/MachO/ARM/no-subsections-reloc.s8
-rw-r--r--test/MC/MachO/ARM/nop-armv4-padding.s7
-rw-r--r--test/MC/MachO/ARM/nop-armv6t2-padding.s7
-rw-r--r--test/MC/MachO/ARM/nop-thumb-padding.s7
-rw-r--r--test/MC/MachO/ARM/nop-thumb2-padding.s7
-rw-r--r--test/MC/MachO/ARM/relax-thumb-ldr-literal.s15
-rw-r--r--test/MC/MachO/ARM/relax-thumb2-branches.s39
-rw-r--r--test/MC/MachO/ARM/thumb-bl-jbits.s12
-rw-r--r--test/MC/MachO/ARM/thumb2-function-relative-load.s6
-rw-r--r--test/MC/MachO/ARM/thumb2-movt-fixup.s32
-rw-r--r--test/MC/MachO/ARM/thumb2-movw-fixup.s90
-rw-r--r--test/MC/MachO/ARM/tvos-version-min-load-command.s13
-rw-r--r--test/MC/MachO/ARM/version-min-diagnostics.s40
-rw-r--r--test/MC/MachO/ARM/version-min-diagnostics2.s34
-rw-r--r--test/MC/MachO/ARM/version-min.s16
-rw-r--r--test/MC/MachO/ARM/watchos-version-min-load-command.s13
-rw-r--r--test/MC/MachO/PowerPC/coal-sections-powerpc.s46
-rw-r--r--test/MC/MachO/PowerPC/lit.local.cfg2
-rw-r--r--test/MC/MachO/absolute.s297
-rw-r--r--test/MC/MachO/absolutize.s290
-rw-r--r--test/MC/MachO/bad-darwin-x86_64-diff-relocs.s10
-rw-r--r--test/MC/MachO/bad-darwin-x86_64-reloc-expr1.s6
-rw-r--r--test/MC/MachO/bad-darwin-x86_64-reloc-expr2.s6
-rw-r--r--test/MC/MachO/coal-sections-x86_64.s48
-rw-r--r--test/MC/MachO/comm-1.s223
-rw-r--r--test/MC/MachO/cstexpr-gotpcrel-64.ll12
-rw-r--r--test/MC/MachO/darwin-complex-difference.s228
-rw-r--r--test/MC/MachO/darwin-version-min-load-command.s28
-rw-r--r--test/MC/MachO/darwin-x86_64-diff-reloc-assign.s16
-rw-r--r--test/MC/MachO/darwin-x86_64-diff-relocs.s400
-rw-r--r--test/MC/MachO/darwin-x86_64-nobase-relocs.s98
-rw-r--r--test/MC/MachO/darwin-x86_64-reloc-offsets.s404
-rw-r--r--test/MC/MachO/data.s115
-rw-r--r--test/MC/MachO/debug_frame.s52
-rw-r--r--test/MC/MachO/diff-with-two-sections.s135
-rw-r--r--test/MC/MachO/direction_labels.s169
-rw-r--r--test/MC/MachO/empty-twice.ll12
-rw-r--r--test/MC/MachO/file.s2
-rw-r--r--test/MC/MachO/gen-dwarf.s4
-rw-r--r--test/MC/MachO/i386-large-relocations.s24
-rw-r--r--test/MC/MachO/indirect-symbols.s365
-rw-r--r--test/MC/MachO/jcc.s98
-rw-r--r--test/MC/MachO/lcomm-attributes.s253
-rw-r--r--test/MC/MachO/linker-option-2.s37
-rw-r--r--test/MC/MachO/linker-options.ll47
-rw-r--r--test/MC/MachO/loc.s50
-rw-r--r--test/MC/MachO/osx-version-min-load-command.s18
-rw-r--r--test/MC/MachO/pcrel-to-other-section.s216
-rw-r--r--test/MC/MachO/relax-jumps.s15
-rw-r--r--test/MC/MachO/relax-recompute-align.s35
-rw-r--r--test/MC/MachO/reloc-diff.s41
-rw-r--r--test/MC/MachO/reloc-pcrel-offset.s33
-rw-r--r--test/MC/MachO/reloc-pcrel.s53
-rw-r--r--test/MC/MachO/section-align-1.s164
-rw-r--r--test/MC/MachO/section-align-2.s257
-rw-r--r--test/MC/MachO/section-attributes.s9
-rw-r--r--test/MC/MachO/section-flags.s53
-rw-r--r--test/MC/MachO/string-table.s201
-rw-r--r--test/MC/MachO/symbol-diff.s241
-rw-r--r--test/MC/MachO/symbol-flags.s628
-rw-r--r--test/MC/MachO/symbol-indirect.s444
-rw-r--r--test/MC/MachO/symbols-1.s620
-rw-r--r--test/MC/MachO/tbss.s228
-rw-r--r--test/MC/MachO/tdata.s211
-rw-r--r--test/MC/MachO/temp-labels.s50
-rw-r--r--test/MC/MachO/thread_init_func.s132
-rw-r--r--test/MC/MachO/tls.s468
-rw-r--r--test/MC/MachO/tlv-bss.ll15
-rw-r--r--test/MC/MachO/tlv-reloc.s321
-rw-r--r--test/MC/MachO/tlv.s213
-rw-r--r--test/MC/MachO/values.s247
-rw-r--r--test/MC/MachO/variable-exprs.s814
-rw-r--r--test/MC/MachO/weakdef.s266
-rw-r--r--test/MC/MachO/x86-data-in-code.ll5
-rw-r--r--test/MC/MachO/x86_32-optimal_nop.s229
-rw-r--r--test/MC/MachO/x86_32-scattered-reloc-fallback.s8
-rw-r--r--test/MC/MachO/x86_32-sections.s1190
-rw-r--r--test/MC/MachO/x86_32-symbols.s2004
-rw-r--r--test/MC/MachO/x86_64-reloc-arithmetic.s42
-rw-r--r--test/MC/MachO/x86_64-sections.s1160
-rw-r--r--test/MC/MachO/zerofill-1.s234
-rw-r--r--test/MC/MachO/zerofill-2.s201
-rw-r--r--test/MC/MachO/zerofill-3.s253
-rw-r--r--test/MC/MachO/zerofill-4.s104
-rw-r--r--test/MC/MachO/zerofill-5.s209
-rw-r--r--test/MC/MachO/zerofill-sect-align.s32
96 files changed, 8987 insertions, 7324 deletions
diff --git a/test/MC/MachO/AArch64/darwin-ARM64-local-label-diff.s b/test/MC/MachO/AArch64/darwin-ARM64-local-label-diff.s
index d98c257c8586f..a10aef3a5f8cd 100644
--- a/test/MC/MachO/AArch64/darwin-ARM64-local-label-diff.s
+++ b/test/MC/MachO/AArch64/darwin-ARM64-local-label-diff.s
@@ -1,4 +1,4 @@
-; RUN: llvm-mc -triple arm64-apple-darwin -filetype=obj -o - < %s | macho-dump -dump-section-data | FileCheck %s
+; RUN: llvm-mc -triple arm64-apple-darwin -filetype=obj -o - < %s | llvm-readobj -s -sd | FileCheck %s
; rdar://13028719
.globl context_save0
@@ -18,4 +18,11 @@ Lcontext_save1_size: .quad (Lcontext_save1_end - Lcontext_save1)
Llockup_release:
.quad 0
-; CHECK: ('_section_data', '05000000 00000000 05000000 00000000 10000000 00000000 1f2003d5 1f2003d5 1f2003d5 1f2003d5 1f2003d5 1f2003d5 1f2003d5 1f2003d5 1f2003d5 1f2003d5 00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000')
+; CHECK: SectionData (
+; CHECK: 0000: 05000000 00000000 05000000 00000000 |................|
+; CHECK: 0010: 10000000 00000000 1F2003D5 1F2003D5 |......... ... ..|
+; CHECK: 0020: 1F2003D5 1F2003D5 1F2003D5 1F2003D5 |. ... ... ... ..|
+; CHECK: 0030: 1F2003D5 1F2003D5 1F2003D5 1F2003D5 |. ... ... ... ..|
+; CHECK: 0040: 00000000 00000000 00000000 00000000 |................|
+; CHECK: 0050: 10000000 00000000 00000000 00000000 |................|
+; CHECK: )
diff --git a/test/MC/MachO/AArch64/reloc-errors.s b/test/MC/MachO/AArch64/reloc-errors.s
new file mode 100644
index 0000000000000..c29416d62cf3d
--- /dev/null
+++ b/test/MC/MachO/AArch64/reloc-errors.s
@@ -0,0 +1,10 @@
+; RUN: not llvm-mc -triple aarch64-none-macho %s -filetype=obj -o - 2>&1 | FileCheck %s
+
+; CHECK: error: conditional branch requires assembler-local label. 'external' is external.
+ b.eq external
+
+; CHECK: error: Invalid relocation on conditional branch
+ tbz w0, #4, external
+
+; CHECK: error: unknown AArch64 fixup kind!
+ adr x0, external
diff --git a/test/MC/MachO/ARM/bad-darwin-ARM-reloc.s b/test/MC/MachO/ARM/bad-darwin-ARM-reloc.s
index 7ad91df3ce0d4..ae4bc225dc5d6 100644
--- a/test/MC/MachO/ARM/bad-darwin-ARM-reloc.s
+++ b/test/MC/MachO/ARM/bad-darwin-ARM-reloc.s
@@ -7,3 +7,9 @@
L___fcommon:
.word 0
@ CHECK-ERROR: unsupported relocation on symbol
+
+c:
+ .word a - b
+@ CHECK-ERROR: symbol 'a' can not be undefined in a subtraction expression
+ .word c - b
+@ CHECK-ERROR: symbol 'b' can not be undefined in a subtraction expression
diff --git a/test/MC/MachO/ARM/compact-unwind-armv7k.s b/test/MC/MachO/ARM/compact-unwind-armv7k.s
new file mode 100644
index 0000000000000..6e8a855cafca7
--- /dev/null
+++ b/test/MC/MachO/ARM/compact-unwind-armv7k.s
@@ -0,0 +1,124 @@
+@ RUN: llvm-mc -triple=thumbv7k-apple-watchos2.0.0 -filetype=obj -o %t < %s && llvm-objdump -unwind-info %t | FileCheck %s
+
+@ CHECK: Contents of __compact_unwind section:
+
+ .syntax unified
+ .align 2
+ .code 16
+
+@ CHECK-LABEL: start: {{.*}} _test_r4_r5_r6
+@ CHECK: compact encoding: 0x01000007
+ .thumb_func _test_r4_r5_r6
+_test_r4_r5_r6:
+ .cfi_startproc
+ push {r4, r5, r6, r7, lr}
+ add r7, sp, #12
+ sub sp, #16
+ .cfi_def_cfa r7, 8
+ .cfi_offset lr, -4
+ .cfi_offset r7, -8
+ .cfi_offset r6, -12
+ .cfi_offset r5, -16
+ .cfi_offset r4, -20
+ .cfi_endproc
+
+
+@ CHECK-LABEL: start: {{.*}} _test_r4_r5_r10_r11
+@ CHECK: compact encoding: 0x01000063
+ .thumb_func _test_r4_r5_r10_r11
+_test_r4_r5_r10_r11:
+ .cfi_startproc
+ push {r4, r5, r7, lr}
+ add r7, sp, #8
+ .cfi_def_cfa r7, 8
+ .cfi_offset lr, -4
+ .cfi_offset r7, -8
+ .cfi_offset r5, -12
+ .cfi_offset r4, -16
+ push.w {r10, r11}
+ .cfi_offset r11, -20
+ .cfi_offset r10, -24
+ .cfi_endproc
+
+
+@ CHECK-LABEL: start: {{.*}} _test_d8
+@ CHECK: compact encoding: 0x02000000
+ .thumb_func _test_d8
+_test_d8:
+ .cfi_startproc
+ push {r7, lr}
+ mov r7, sp
+ .cfi_def_cfa r7, 8
+ .cfi_offset lr, -4
+ .cfi_offset r7, -8
+ vpush {d8}
+ .cfi_offset d8, -16
+ .cfi_endproc
+
+
+@ CHECK-LABEL: start: {{.*}} _test_d8_d10_d12_d14
+@ CHECK: compact encoding: 0x02000300
+ .thumb_func _test_d8_d10_d12_d14
+_test_d8_d10_d12_d14:
+ .cfi_startproc
+ push {r7, lr}
+ mov r7, sp
+ .cfi_def_cfa r7, 8
+ .cfi_offset lr, -4
+ .cfi_offset r7, -8
+ vpush {d14}
+ vpush {d12}
+ vpush {d10}
+ vpush {d8}
+ .cfi_offset d14, -16
+ .cfi_offset d12, -24
+ .cfi_offset d10, -32
+ .cfi_offset d8, -40
+ .cfi_endproc
+
+@ CHECK-LABEL: start: {{.*}} _test_varargs
+@ CHECK: compact encoding: 0x01c00001
+ .thumb_func _test_varargs
+_test_varargs:
+ .cfi_startproc
+ sub sp, #12
+ push {r4, r7, lr}
+ add r7, sp, #4
+ .cfi_def_cfa r7, 20
+ .cfi_offset lr, -16
+ .cfi_offset r7, -20
+ .cfi_offset r4, -24
+ add.w r9, r7, #8
+ mov r4, r0
+ stm.w r9, {r1, r2, r3}
+ .cfi_endproc
+
+@ CHECK-LABEL: start: {{.*}} _test_missing_lr
+@ CHECK: compact encoding: 0x04000000
+ .thumb_func _test_missing_lr
+_test_missing_lr:
+ .cfi_startproc
+ push {r7}
+ .cfi_def_cfa r7, 4
+ .cfi_offset r7, -4
+ pop {r7}
+ bx lr
+ .cfi_endproc
+
+@ CHECK-LABEL: start: {{.*}} _test_swapped_offsets
+@ CHECK: compact encoding: 0x04000000
+ .thumb_func _test_swapped_offsets
+_test_swapped_offsets:
+ .cfi_startproc
+ push {r7, lr}
+ push {r10}
+ push {r4}
+ .cfi_def_cfa r7, 8
+ .cfi_offset lr, -4
+ .cfi_offset r7, -8
+ .cfi_offset r10, -12
+ .cfi_offset r4, -16
+ pop {r4}
+ pop {r10}
+ pop {r7, pc}
+ .cfi_endproc
diff --git a/test/MC/MachO/ARM/darwin-ARM-reloc.s b/test/MC/MachO/ARM/darwin-ARM-reloc.s
index 374f8804a52c2..9843ec3015452 100644
--- a/test/MC/MachO/ARM/darwin-ARM-reloc.s
+++ b/test/MC/MachO/ARM/darwin-ARM-reloc.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -n -triple armv7-apple-darwin10 %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.obj > %t.dump
@ RUN: FileCheck < %t.dump %s
.syntax unified
@@ -21,153 +21,166 @@ Lsc0_0:
.subsections_via_symbols
-@ CHECK: ('cputype', 12)
-@ CHECK: ('cpusubtype', 9)
-@ CHECK: ('filetype', 1)
-@ CHECK: ('num_load_commands', 3)
-@ CHECK: ('load_commands_size', 364)
-@ CHECK: ('flag', 8192)
-@ CHECK: ('load_commands', [
-@ CHECK: # Load Command 0
-@ CHECK: (('command', 1)
-@ CHECK: ('size', 260)
-@ CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('vm_addr', 0)
-@ CHECK: ('vm_size', 16)
-@ CHECK: ('file_offset', 392)
-@ CHECK: ('file_size', 16)
-@ CHECK: ('maxprot', 7)
-@ CHECK: ('initprot', 7)
-@ CHECK: ('num_sections', 3)
-@ CHECK: ('flags', 0)
-@ CHECK: ('sections', [
-@ CHECK: # Section 0
-@ CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('address', 0)
-@ CHECK: ('size', 8)
-@ CHECK: ('offset', 392)
-@ CHECK: ('alignment', 0)
-@ CHECK: ('reloc_offset', 408)
-@ CHECK: ('num_reloc', 2)
-@ CHECK: ('flags', 0x80000400)
-@ CHECK: ('reserved1', 0)
-@ CHECK: ('reserved2', 0)
-@ CHECK: ),
-@ CHECK: ('_relocations', [
-@ CHECK: # Relocation 0
-@ CHECK: (('word-0', 0x4),
-@ CHECK: ('word-1', 0x55000001)),
-@ CHECK: # Relocation 1
-@ CHECK: (('word-0', 0x0),
-@ CHECK: ('word-1', 0x5d000003)),
-@ CHECK: ])
-@ CHECK: ('_section_data', 'feffffeb fdffffeb')
-@ CHECK: # Section 1
-@ CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('address', 8)
-@ CHECK: ('size', 4)
-@ CHECK: ('offset', 400)
-@ CHECK: ('alignment', 0)
-@ CHECK: ('reloc_offset', 424)
-@ CHECK: ('num_reloc', 2)
-@ CHECK: ('flags', 0x0)
-@ CHECK: ('reserved1', 0)
-@ CHECK: ('reserved2', 0)
-@ CHECK: ),
-@ CHECK: ('_relocations', [
-@ CHECK: # Relocation 0
-@ CHECK: (('word-0', 0xa2000000),
-@ CHECK: ('word-1', 0xc)),
-@ CHECK: # Relocation 1
-@ CHECK: (('word-0', 0xa1000000),
-@ CHECK: ('word-1', 0x8)),
-@ CHECK: ])
-@ CHECK: ('_section_data', '04000000')
-@ CHECK: # Section 2
-@ CHECK: (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('address', 12)
-@ CHECK: ('size', 4)
-@ CHECK: ('offset', 404)
-@ CHECK: ('alignment', 0)
-@ CHECK: ('reloc_offset', 0)
-@ CHECK: ('num_reloc', 0)
-@ CHECK: ('flags', 0x2)
-@ CHECK: ('reserved1', 0)
-@ CHECK: ('reserved2', 0)
-@ CHECK: ),
-@ CHECK: ('_relocations', [
-@ CHECK: ])
-@ CHECK: ('_section_data', '00000000')
-@ CHECK: ])
-@ CHECK: ),
-@ CHECK: # Load Command 1
-@ CHECK: (('command', 2)
-@ CHECK: ('size', 24)
-@ CHECK: ('symoff', 440)
-@ CHECK: ('nsyms', 4)
-@ CHECK: ('stroff', 488)
-@ CHECK: ('strsize', 24)
-@ CHECK: ('_string_data', '\x00_printf\x00_f1\x00_f0\x00_d0\x00\x00\x00\x00')
-@ CHECK: ('_symbols', [
-@ CHECK: # Symbol 0
-@ CHECK: (('n_strx', 13)
-@ CHECK: ('n_type', 0xe)
-@ CHECK: ('n_sect', 1)
-@ CHECK: ('n_desc', 0)
-@ CHECK: ('n_value', 0)
-@ CHECK: ('_string', '_f0')
-@ CHECK: ),
-@ CHECK: # Symbol 1
-@ CHECK: (('n_strx', 9)
-@ CHECK: ('n_type', 0xe)
-@ CHECK: ('n_sect', 1)
-@ CHECK: ('n_desc', 0)
-@ CHECK: ('n_value', 4)
-@ CHECK: ('_string', '_f1')
-@ CHECK: ),
-@ CHECK: # Symbol 2
-@ CHECK: (('n_strx', 17)
-@ CHECK: ('n_type', 0xe)
-@ CHECK: ('n_sect', 2)
-@ CHECK: ('n_desc', 0)
-@ CHECK: ('n_value', 8)
-@ CHECK: ('_string', '_d0')
-@ CHECK: ),
-@ CHECK: # Symbol 3
-@ CHECK: (('n_strx', 1)
-@ CHECK: ('n_type', 0x1)
-@ CHECK: ('n_sect', 0)
-@ CHECK: ('n_desc', 0)
-@ CHECK: ('n_value', 0)
-@ CHECK: ('_string', '_printf')
-@ CHECK: ),
-@ CHECK: ])
-@ CHECK: ),
-@ CHECK: # Load Command 2
-@ CHECK: (('command', 11)
-@ CHECK: ('size', 80)
-@ CHECK: ('ilocalsym', 0)
-@ CHECK: ('nlocalsym', 3)
-@ CHECK: ('iextdefsym', 3)
-@ CHECK: ('nextdefsym', 0)
-@ CHECK: ('iundefsym', 3)
-@ CHECK: ('nundefsym', 1)
-@ CHECK: ('tocoff', 0)
-@ CHECK: ('ntoc', 0)
-@ CHECK: ('modtaboff', 0)
-@ CHECK: ('nmodtab', 0)
-@ CHECK: ('extrefsymoff', 0)
-@ CHECK: ('nextrefsyms', 0)
-@ CHECK: ('indirectsymoff', 0)
-@ CHECK: ('nindirectsyms', 0)
-@ CHECK: ('extreloff', 0)
-@ CHECK: ('nextrel', 0)
-@ CHECK: ('locreloff', 0)
-@ CHECK: ('nlocrel', 0)
-@ CHECK: ('_indirect_symbols', [
-@ CHECK: ])
-@ CHECK: ),
-@ CHECK: ])
+@ CHECK: File: <stdin>
+@ CHECK: Format: Mach-O arm
+@ CHECK: Arch: arm
+@ CHECK: AddressSize: 32bit
+@ CHECK: MachHeader {
+@ CHECK: Magic: Magic (0xFEEDFACE)
+@ CHECK: CpuType: Arm (0xC)
+@ CHECK: CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9)
+@ CHECK: FileType: Relocatable (0x1)
+@ CHECK: NumOfLoadCommands: 4
+@ CHECK: SizeOfLoadCommands: 380
+@ CHECK: Flags [ (0x2000)
+@ CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
+@ CHECK: ]
+@ CHECK: }
+@ CHECK: Sections [
+@ CHECK: Section {
+@ CHECK: Index: 0
+@ CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Address: 0x0
+@ CHECK: Size: 0x8
+@ CHECK: Offset: 408
+@ CHECK: Alignment: 0
+@ CHECK: RelocationOffset: 0x1A8
+@ CHECK: RelocationCount: 2
+@ CHECK: Type: 0x0
+@ CHECK: Attributes [ (0x800004)
+@ CHECK: PureInstructions (0x800000)
+@ CHECK: SomeInstructions (0x4)
+@ CHECK: ]
+@ CHECK: Reserved1: 0x0
+@ CHECK: Reserved2: 0x0
+@ CHECK: SectionData (
+@ CHECK: 0000: FEFFFFEB FDFFFFEB |........|
+@ CHECK: )
+@ CHECK: }
+@ CHECK: Section {
+@ CHECK: Index: 1
+@ CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Address: 0x8
+@ CHECK: Size: 0x4
+@ CHECK: Offset: 416
+@ CHECK: Alignment: 0
+@ CHECK: RelocationOffset: 0x1B8
+@ CHECK: RelocationCount: 2
+@ CHECK: Type: 0x0
+@ CHECK: Attributes [ (0x0)
+@ CHECK: ]
+@ CHECK: Reserved1: 0x0
+@ CHECK: Reserved2: 0x0
+@ CHECK: SectionData (
+@ CHECK: 0000: 04000000 |....|
+@ CHECK: )
+@ CHECK: }
+@ CHECK: Section {
+@ CHECK: Index: 2
+@ CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
+@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Address: 0xC
+@ CHECK: Size: 0x4
+@ CHECK: Offset: 420
+@ CHECK: Alignment: 0
+@ CHECK: RelocationOffset: 0x0
+@ CHECK: RelocationCount: 0
+@ CHECK: Type: ExtReloc (0x2)
+@ CHECK: Attributes [ (0x0)
+@ CHECK: ]
+@ CHECK: Reserved1: 0x0
+@ CHECK: Reserved2: 0x0
+@ CHECK: SectionData (
+@ CHECK: 0000: 00000000 |....|
+@ CHECK: )
+@ CHECK: }
+@ CHECK: ]
+@ CHECK: Relocations [
+@ CHECK: Section __text {
+@ CHECK: 0x4 1 2 0 ARM_RELOC_BR24 0 __text
+@ CHECK: 0x0 1 2 1 ARM_RELOC_BR24 0 _printf
+@ CHECK: }
+@ CHECK: Section __data {
+@ CHECK: 0x0 0 2 n/a ARM_RELOC_SECTDIFF 1 0xC
+@ CHECK: 0x0 0 2 n/a ARM_RELOC_PAIR 1 0x8
+@ CHECK: }
+@ CHECK: ]
+@ CHECK: Symbols [
+@ CHECK: Symbol {
+@ CHECK: Name: _f0 (13)
+@ CHECK: Type: Section (0xE)
+@ CHECK: Section: __text (0x1)
+@ CHECK: RefType: UndefinedNonLazy (0x0)
+@ CHECK: Flags [ (0x0)
+@ CHECK: ]
+@ CHECK: Value: 0x0
+@ CHECK: }
+@ CHECK: Symbol {
+@ CHECK: Name: _f1 (9)
+@ CHECK: Type: Section (0xE)
+@ CHECK: Section: __text (0x1)
+@ CHECK: RefType: UndefinedNonLazy (0x0)
+@ CHECK: Flags [ (0x0)
+@ CHECK: ]
+@ CHECK: Value: 0x4
+@ CHECK: }
+@ CHECK: Symbol {
+@ CHECK: Name: _d0 (17)
+@ CHECK: Type: Section (0xE)
+@ CHECK: Section: __data (0x2)
+@ CHECK: RefType: UndefinedNonLazy (0x0)
+@ CHECK: Flags [ (0x0)
+@ CHECK: ]
+@ CHECK: Value: 0x8
+@ CHECK: }
+@ CHECK: Symbol {
+@ CHECK: Name: _printf (1)
+@ CHECK: Extern
+@ CHECK: Type: Undef (0x0)
+@ CHECK: Section: (0x0)
+@ CHECK: RefType: UndefinedNonLazy (0x0)
+@ CHECK: Flags [ (0x0)
+@ CHECK: ]
+@ CHECK: Value: 0x0
+@ CHECK: }
+@ CHECK: ]
+@ CHECK: Indirect Symbols {
+@ CHECK: Number: 0
+@ CHECK: Symbols [
+@ CHECK: ]
+@ CHECK: }
+@ CHECK: Segment {
+@ CHECK: Cmd: LC_SEGMENT
+@ CHECK: Name:
+@ CHECK: Size: 260
+@ CHECK: vmaddr: 0x0
+@ CHECK: vmsize: 0x10
+@ CHECK: fileoff: 408
+@ CHECK: filesize: 16
+@ CHECK: maxprot: rwx
+@ CHECK: initprot: rwx
+@ CHECK: nsects: 3
+@ CHECK: flags: 0x0
+@ CHECK: }
+@ CHECK: Dysymtab {
+@ CHECK: ilocalsym: 0
+@ CHECK: nlocalsym: 3
+@ CHECK: iextdefsym: 3
+@ CHECK: nextdefsym: 0
+@ CHECK: iundefsym: 3
+@ CHECK: nundefsym: 1
+@ CHECK: tocoff: 0
+@ CHECK: ntoc: 0
+@ CHECK: modtaboff: 0
+@ CHECK: nmodtab: 0
+@ CHECK: extrefsymoff: 0
+@ CHECK: nextrefsyms: 0
+@ CHECK: indirectsymoff: 0
+@ CHECK: nindirectsyms: 0
+@ CHECK: extreloff: 0
+@ CHECK: nextrel: 0
+@ CHECK: locreloff: 0
+@ CHECK: nlocrel: 0
+@ CHECK: }
diff --git a/test/MC/MachO/ARM/darwin-Thumb-reloc.s b/test/MC/MachO/ARM/darwin-Thumb-reloc.s
index 567573d9ef197..7c85e0d3fe8e5 100644
--- a/test/MC/MachO/ARM/darwin-Thumb-reloc.s
+++ b/test/MC/MachO/ARM/darwin-Thumb-reloc.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.obj > %t.dump
@ RUN: FileCheck < %t.dump %s
.syntax unified
@@ -22,118 +22,127 @@ L_.str:
.subsections_via_symbols
-@ CHECK: ('cputype', 12)
-@ CHECK: ('cpusubtype', 9)
-@ CHECK: ('filetype', 1)
-@ CHECK: ('num_load_commands', 3)
-@ CHECK: ('load_commands_size', 296)
-@ CHECK: ('flag', 8192)
-@ CHECK: ('load_commands', [
-@ CHECK: # Load Command 0
-@ CHECK: (('command', 1)
-@ CHECK: ('size', 192)
-@ CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('vm_addr', 0)
-@ CHECK: ('vm_size', 11)
-@ CHECK: ('file_offset', 324)
-@ CHECK: ('file_size', 11)
-@ CHECK: ('maxprot', 7)
-@ CHECK: ('initprot', 7)
-@ CHECK: ('num_sections', 2)
-@ CHECK: ('flags', 0)
-@ CHECK: ('sections', [
-@ CHECK: # Section 0
-@ CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('address', 0)
-@ CHECK: ('size', 8)
-@ CHECK: ('offset', 324)
-@ CHECK: ('alignment', 2)
-@ CHECK: ('reloc_offset', 336)
-@ CHECK: ('num_reloc', 3)
-@ CHECK: ('flags', 0x80000400)
-@ CHECK: ('reserved1', 0)
-@ CHECK: ('reserved2', 0)
-@ CHECK: ),
-@ CHECK: ('_relocations', [
-@ CHECK: # Relocation 0
-@ CHECK: (('word-0', 0xa2000004),
-@ CHECK: ('word-1', 0x8)),
-@ CHECK: # Relocation 1
-@ CHECK: (('word-0', 0xa1000000),
-@ CHECK: ('word-1', 0x0)),
-@ CHECK: # Relocation 2
-@ CHECK: (('word-0', 0x0),
-@ CHECK: ('word-1', 0x6d000001)),
-@ CHECK: ])
-@ CHECK-FIXME: ('_section_data', 'fff7feef 04000000')
-@ CHECK: # Section 1
-@ CHECK: (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-@ CHECK: ('address', 8)
-@ CHECK: ('size', 3)
-@ CHECK: ('offset', 332)
-@ CHECK: ('alignment', 2)
-@ CHECK: ('reloc_offset', 0)
-@ CHECK: ('num_reloc', 0)
-@ CHECK: ('flags', 0x2)
-@ CHECK: ('reserved1', 0)
-@ CHECK: ('reserved2', 0)
-@ CHECK: ),
-@ CHECK: ('_relocations', [
-@ CHECK: ])
-@ CHECK: ('_section_data', '733000')
-@ CHECK: ])
-@ CHECK: ),
-@ CHECK: # Load Command 1
-@ CHECK: (('command', 2)
-@ CHECK: ('size', 24)
-@ CHECK: ('symoff', 360)
-@ CHECK: ('nsyms', 2)
-@ CHECK: ('stroff', 384)
-@ CHECK: ('strsize', 16)
-@ CHECK: ('_string_data', '\x00_main\x00_printf\x00\x00')
-@ CHECK: ('_symbols', [
-@ CHECK: # Symbol 0
-@ CHECK: (('n_strx', 1)
-@ CHECK: ('n_type', 0xf)
-@ CHECK: ('n_sect', 1)
-@ CHECK: ('n_desc', 8)
-@ CHECK: ('n_value', 0)
-@ CHECK: ('_string', '_main')
-@ CHECK: ),
-@ CHECK: # Symbol 1
-@ CHECK: (('n_strx', 7)
-@ CHECK: ('n_type', 0x1)
-@ CHECK: ('n_sect', 0)
-@ CHECK: ('n_desc', 0)
-@ CHECK: ('n_value', 0)
-@ CHECK: ('_string', '_printf')
-@ CHECK: ),
-@ CHECK: ])
-@ CHECK: ),
-@ CHECK: # Load Command 2
-@ CHECK: (('command', 11)
-@ CHECK: ('size', 80)
-@ CHECK: ('ilocalsym', 0)
-@ CHECK: ('nlocalsym', 0)
-@ CHECK: ('iextdefsym', 0)
-@ CHECK: ('nextdefsym', 1)
-@ CHECK: ('iundefsym', 1)
-@ CHECK: ('nundefsym', 1)
-@ CHECK: ('tocoff', 0)
-@ CHECK: ('ntoc', 0)
-@ CHECK: ('modtaboff', 0)
-@ CHECK: ('nmodtab', 0)
-@ CHECK: ('extrefsymoff', 0)
-@ CHECK: ('nextrefsyms', 0)
-@ CHECK: ('indirectsymoff', 0)
-@ CHECK: ('nindirectsyms', 0)
-@ CHECK: ('extreloff', 0)
-@ CHECK: ('nextrel', 0)
-@ CHECK: ('locreloff', 0)
-@ CHECK: ('nlocrel', 0)
-@ CHECK: ('_indirect_symbols', [
-@ CHECK: ])
-@ CHECK: ),
-@ CHECK: ])
+@ CHECK: File: <stdin>
+@ CHECK: Format: Mach-O arm
+@ CHECK: Arch: arm
+@ CHECK: AddressSize: 32bit
+@ CHECK: MachHeader {
+@ CHECK: Magic: Magic (0xFEEDFACE)
+@ CHECK: CpuType: Arm (0xC)
+@ CHECK: CpuSubType: CPU_SUBTYPE_ARM_V7 (0x9)
+@ CHECK: FileType: Relocatable (0x1)
+@ CHECK: NumOfLoadCommands: 4
+@ CHECK: SizeOfLoadCommands: 312
+@ CHECK: Flags [ (0x2000)
+@ CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
+@ CHECK: ]
+@ CHECK: }
+@ CHECK: Sections [
+@ CHECK: Section {
+@ CHECK: Index: 0
+@ CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Address: 0x0
+@ CHECK: Size: 0x8
+@ CHECK: Offset: 340
+@ CHECK: Alignment: 2
+@ CHECK: RelocationOffset: 0x160
+@ CHECK: RelocationCount: 3
+@ CHECK: Type: 0x0
+@ CHECK: Attributes [ (0x800004)
+@ CHECK: PureInstructions (0x800000)
+@ CHECK: SomeInstructions (0x4)
+@ CHECK: ]
+@ CHECK: Reserved1: 0x0
+@ CHECK: Reserved2: 0x0
+@ CHECK: SectionData (
+@ CHECK: 0000: FFF7FEEF 04000000 |........|
+@ CHECK: )
+@ CHECK: }
+@ CHECK: Section {
+@ CHECK: Index: 1
+@ CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
+@ CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+@ CHECK: Address: 0x8
+@ CHECK: Size: 0x3
+@ CHECK: Offset: 348
+@ CHECK: Alignment: 2
+@ CHECK: RelocationOffset: 0x0
+@ CHECK: RelocationCount: 0
+@ CHECK: Type: ExtReloc (0x2)
+@ CHECK: Attributes [ (0x0)
+@ CHECK: ]
+@ CHECK: Reserved1: 0x0
+@ CHECK: Reserved2: 0x0
+@ CHECK: SectionData (
+@ CHECK: 0000: 733000 |s0.|
+@ CHECK: )
+@ CHECK: }
+@ CHECK: ]
+@ CHECK: Relocations [
+@ CHECK: Section __text {
+@ CHECK: 0x4 0 2 n/a ARM_RELOC_SECTDIFF 1 0x8
+@ CHECK: 0x0 0 2 n/a ARM_RELOC_PAIR 1 0x0
+@ CHECK: 0x0 1 2 1 ARM_THUMB_RELOC_BR22 0 _printf
+@ CHECK: }
+@ CHECK: ]
+@ CHECK: Symbols [
+@ CHECK: Symbol {
+@ CHECK: Name: _main (1)
+@ CHECK: Extern
+@ CHECK: Type: Section (0xE)
+@ CHECK: Section: __text (0x1)
+@ CHECK: RefType: 0x8
+@ CHECK: Flags [ (0x0)
+@ CHECK: ]
+@ CHECK: Value: 0x0
+@ CHECK: }
+@ CHECK: Symbol {
+@ CHECK: Name: _printf (7)
+@ CHECK: Extern
+@ CHECK: Type: Undef (0x0)
+@ CHECK: Section: (0x0)
+@ CHECK: RefType: UndefinedNonLazy (0x0)
+@ CHECK: Flags [ (0x0)
+@ CHECK: ]
+@ CHECK: Value: 0x0
+@ CHECK: }
+@ CHECK: ]
+@ CHECK: Indirect Symbols {
+@ CHECK: Number: 0
+@ CHECK: Symbols [
+@ CHECK: ]
+@ CHECK: }
+@ CHECK: Segment {
+@ CHECK: Cmd: LC_SEGMENT
+@ CHECK: Name:
+@ CHECK: Size: 192
+@ CHECK: vmaddr: 0x0
+@ CHECK: vmsize: 0xB
+@ CHECK: fileoff: 340
+@ CHECK: filesize: 11
+@ CHECK: maxprot: rwx
+@ CHECK: initprot: rwx
+@ CHECK: nsects: 2
+@ CHECK: flags: 0x0
+@ CHECK: }
+@ CHECK: Dysymtab {
+@ CHECK: ilocalsym: 0
+@ CHECK: nlocalsym: 0
+@ CHECK: iextdefsym: 0
+@ CHECK: nextdefsym: 1
+@ CHECK: iundefsym: 1
+@ CHECK: nundefsym: 1
+@ CHECK: tocoff: 0
+@ CHECK: ntoc: 0
+@ CHECK: modtaboff: 0
+@ CHECK: nmodtab: 0
+@ CHECK: extrefsymoff: 0
+@ CHECK: nextrefsyms: 0
+@ CHECK: indirectsymoff: 0
+@ CHECK: nindirectsyms: 0
+@ CHECK: extreloff: 0
+@ CHECK: nextrel: 0
+@ CHECK: locreloff: 0
+@ CHECK: nlocrel: 0
+@ CHECK: }
diff --git a/test/MC/MachO/ARM/data-in-code.s b/test/MC/MachO/ARM/data-in-code.s
index bbcb9aabde5c2..a7be7e74d4955 100644
--- a/test/MC/MachO/ARM/data-in-code.s
+++ b/test/MC/MachO/ARM/data-in-code.s
@@ -1,23 +1,6 @@
-@ RUN: llvm-mc -triple armv7-apple-darwin10 -filetype=obj -o - < %s | macho-dump | FileCheck %s
+@ RUN: llvm-mc -triple armv7-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj --macho-data-in-code | FileCheck %s
.text
_foo:
-@ CHECK: # DICE 0
-@ CHECK: ('offset', 0)
-@ CHECK: ('length', 4)
-@ CHECK: ('kind', 1)
-@ CHECK: # DICE 1
-@ CHECK: ('offset', 4)
-@ CHECK: ('length', 4)
-@ CHECK: ('kind', 4)
-@ CHECK: # DICE 2
-@ CHECK: ('offset', 8)
-@ CHECK: ('length', 2)
-@ CHECK: ('kind', 3)
-@ CHECK: # DICE 3
-@ CHECK: ('offset', 10)
-@ CHECK: ('length', 1)
-@ CHECK: ('kind', 2)
-
.data_region
.long 10
.end_data_region
@@ -31,3 +14,37 @@ _foo:
.byte 3
.end_data_region
+@ CHECK: File: <stdin>
+@ CHECK: Format: Mach-O arm
+@ CHECK: Arch: arm
+@ CHECK: AddressSize: 32bit
+@ CHECK: DataInCode {
+@ CHECK: Data offset: 300
+@ CHECK: Data size: 32
+@ CHECK: Data entries [
+@ CHECK: Entry {
+@ CHECK: Index: 0
+@ CHECK: Offset: 0
+@ CHECK: Length: 4
+@ CHECK: Kind: 1
+@ CHECK: }
+@ CHECK: Entry {
+@ CHECK: Index: 1
+@ CHECK: Offset: 4
+@ CHECK: Length: 4
+@ CHECK: Kind: 4
+@ CHECK: }
+@ CHECK: Entry {
+@ CHECK: Index: 2
+@ CHECK: Offset: 8
+@ CHECK: Length: 2
+@ CHECK: Kind: 3
+@ CHECK: }
+@ CHECK: Entry {
+@ CHECK: Index: 3
+@ CHECK: Offset: 10
+@ CHECK: Length: 1
+@ CHECK: Kind: 2
+@ CHECK: }
+@ CHECK: ]
+@ CHECK: }
diff --git a/test/MC/MachO/ARM/empty-function-nop.ll b/test/MC/MachO/ARM/empty-function-nop.ll
index ef86ebc2a267d..0bc439497e2c4 100644
--- a/test/MC/MachO/ARM/empty-function-nop.ll
+++ b/test/MC/MachO/ARM/empty-function-nop.ll
@@ -1,7 +1,7 @@
-; RUN: llc < %s -filetype=obj -mtriple=thumbv6-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-T1 %s
-; RUN: llc < %s -filetype=obj -mtriple=thumbv7-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-T2 %s
-; RUN: llc < %s -filetype=obj -mtriple=armv6-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-ARM %s
-; RUN: llc < %s -filetype=obj -mtriple=armv7-apple-darwin -o - | macho-dump --dump-section-data | FileCheck -check-prefix=CHECK-ARMV7 %s
+; RUN: llc < %s -filetype=obj -mtriple=thumbv6-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-T1 %s
+; RUN: llc < %s -filetype=obj -mtriple=thumbv7-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-T2 %s
+; RUN: llc < %s -filetype=obj -mtriple=armv6-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-ARM %s
+; RUN: llc < %s -filetype=obj -mtriple=armv7-apple-darwin -o - | llvm-readobj -s -sd | FileCheck -check-prefix=CHECK-ARMV7 %s
; Empty functions need a NOP in them for MachO to prevent DWARF FDEs from
; getting all mucked up. See lib/CodeGen/AsmPrinter/AsmPrinter.cpp for
@@ -9,7 +9,15 @@
define internal fastcc void @empty_function() {
unreachable
}
-; CHECK-T1: ('_section_data', 'c046')
-; CHECK-T2: ('_section_data', '00bf')
-; CHECK-ARM: ('_section_data', '0000a0e1')
-; CHECK-ARMV7: ('_section_data', '00f020e3')
+; CHECK-T1: SectionData (
+; CHECK-T1: 0000: C046 |.F|
+; CHECK-T1: )
+; CHECK-T2: SectionData (
+; CHECK-T2: 0000: 00BF |..|
+; CHECK-T2: )
+; CHECK-ARM: SectionData (
+; CHECK-ARM: 0000: 0000A0E1 |....|
+; CHECK-ARM: )
+; CHECK-ARMV7: SectionData (
+; CHECK-ARMV7: 0000: 00F020E3 |.. .|
+; CHECK-ARMV7: )
diff --git a/test/MC/MachO/ARM/ios-version-min-load-command.s b/test/MC/MachO/ARM/ios-version-min-load-command.s
index 9f63c9bd27c7c..0fa29da0b4c6b 100644
--- a/test/MC/MachO/ARM/ios-version-min-load-command.s
+++ b/test/MC/MachO/ARM/ios-version-min-load-command.s
@@ -1,10 +1,16 @@
-// RUN: llvm-mc -triple armv7-apple-ios %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple armv7-apple-ios %s -filetype=obj -o - | llvm-readobj --macho-version-min | FileCheck %s
// Test the formation of the version-min load command in the MachO.
// use a nonsense but well formed version.
.ios_version_min 99,8,7
-// CHECK: (('command', 37)
-// CHECK: ('size', 16)
-// CHECK: ('version, 6490119)
-// CHECK: ('sdk, 0)
-// CHECK: ),
+
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O arm
+// CHECK: Arch: arm
+// CHECK: AddressSize: 32bit
+// CHECK: MinVersion {
+// CHECK: Cmd: LC_VERSION_MIN_IPHONEOS
+// CHECK: Size: 16
+// CHECK: Version: 99.8.7
+// CHECK: SDK: n/a
+// CHECK: }
diff --git a/test/MC/MachO/ARM/long-call-branch-island-relocation.s b/test/MC/MachO/ARM/long-call-branch-island-relocation.s
index 8ee7da54b5416..c4d153fc2b68b 100644
--- a/test/MC/MachO/ARM/long-call-branch-island-relocation.s
+++ b/test/MC/MachO/ARM/long-call-branch-island-relocation.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -n -triple armv7-apple-darwin10 %s -filetype=obj -o %t.o
-@ RUN: macho-dump --dump-section-data < %t.o | FileCheck %s
+@ RUN: llvm-readobj -relocations -expand-relocs < %t.o | FileCheck %s
@ rdar://12359919
@@ -36,8 +36,18 @@ _foo:
pop {r7, pc}
-@ CHECK: ('_relocations', [
-@ CHECK: # Relocation 0
-@ CHECK: (('word-0', 0x4),
-@ CHECK: ('word-1', 0x6d000002)),
-@ CHECK: ])
+@ CHECK: File: <stdin>
+@ CHECK: Format: Mach-O arm
+@ CHECK: Arch: arm
+@ CHECK: AddressSize: 32bit
+@ CHECK: Relocations [
+@ CHECK: Section __text {
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x4
+@ CHECK: PCRel: 1
+@ CHECK: Length: 2
+@ CHECK: Type: ARM_THUMB_RELOC_BR22 (6)
+@ CHECK: Symbol: _foo (2)
+@ CHECK: }
+@ CHECK: }
+@ CHECK: ]
diff --git a/test/MC/MachO/ARM/no-subsections-reloc.s b/test/MC/MachO/ARM/no-subsections-reloc.s
index 7701c59c68052..e367a3cfa7310 100644
--- a/test/MC/MachO/ARM/no-subsections-reloc.s
+++ b/test/MC/MachO/ARM/no-subsections-reloc.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump
@ RUN: FileCheck < %t.dump %s
@ When not using subsections-via-symbols, references to non-local symbols
@@ -14,5 +14,7 @@ _foo:
bar:
.long 0
-@ CHECK: 'num_reloc', 0
-@ CHECK: '_section_data', 'dff80030 00000000'
+@ CHECK: RelocationCount: 0
+@ CHECK: SectionData (
+@ CHECK: 0000: DFF80030 00000000 |...0....|
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/nop-armv4-padding.s b/test/MC/MachO/ARM/nop-armv4-padding.s
index 8e03d17a70c9a..baab3d7491c83 100644
--- a/test/MC/MachO/ARM/nop-armv4-padding.s
+++ b/test/MC/MachO/ARM/nop-armv4-padding.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -triple armv4-apple-darwin %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump
@ RUN: FileCheck %s < %t.dump
x:
@@ -7,4 +7,7 @@ x:
.align 4
add r0, r1, r2
-@ CHECK: ('_section_data', '020081e0 0000a0e1 0000a0e1 0000a0e1 020081e0')
+@ CHECK: SectionData (
+@ CHECK: 0000: 020081E0 0000A0E1 0000A0E1 0000A0E1 |................|
+@ CHECK: 0010: 020081E0 |....|
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/nop-armv6t2-padding.s b/test/MC/MachO/ARM/nop-armv6t2-padding.s
index c38ad2d7c57c9..a1a21f5f456e7 100644
--- a/test/MC/MachO/ARM/nop-armv6t2-padding.s
+++ b/test/MC/MachO/ARM/nop-armv6t2-padding.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -triple armv6t2-apple-darwin %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump
@ RUN: FileCheck %s < %t.dump
x:
@@ -7,4 +7,7 @@ x:
.align 4
add r0, r1, r2
-@ CHECK: ('_section_data', '020081e0 00f020e3 00f020e3 00f020e3 020081e0')
+@ CHECK: SectionData (
+@ CHECK: 0000: 020081E0 00F020E3 00F020E3 00F020E3 |...... ... ... .|
+@ CHECK: 0010: 020081E0 |....|
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/nop-thumb-padding.s b/test/MC/MachO/ARM/nop-thumb-padding.s
index 1e173f1a42d9b..26db12140defc 100644
--- a/test/MC/MachO/ARM/nop-thumb-padding.s
+++ b/test/MC/MachO/ARM/nop-thumb-padding.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -triple armv6-apple-darwin %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump
@ RUN: FileCheck %s < %t.dump
.thumb_func x
@@ -9,4 +9,7 @@ x:
.align 4
adds r0, r1, r2
-@ CHECK: ('_section_data', '8818c046 c046c046 c046c046 c046c046 8818')
+@ CHECK: SectionData (
+@ CHECK: 0000: 8818C046 C046C046 C046C046 C046C046 |...F.F.F.F.F.F.F|
+@ CHECK: 0010: 8818 |..|
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/nop-thumb2-padding.s b/test/MC/MachO/ARM/nop-thumb2-padding.s
index a8aa3a1168efe..a986ff17f2aae 100644
--- a/test/MC/MachO/ARM/nop-thumb2-padding.s
+++ b/test/MC/MachO/ARM/nop-thumb2-padding.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -triple armv7-apple-darwin %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump
@ RUN: FileCheck %s < %t.dump
.thumb_func x
@@ -9,4 +9,7 @@ x:
.align 4
adds r0, r1, r2
-@ CHECK: ('_section_data', '881800bf 00bf00bf 00bf00bf 00bf00bf 8818')
+@ CHECK: SectionData (
+@ CHECK: 0000: 881800BF 00BF00BF 00BF00BF 00BF00BF |................|
+@ CHECK: 0010: 8818 |..|
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/relax-thumb-ldr-literal.s b/test/MC/MachO/ARM/relax-thumb-ldr-literal.s
index 8d26f6d2e2d71..f6f2233e6f972 100644
--- a/test/MC/MachO/ARM/relax-thumb-ldr-literal.s
+++ b/test/MC/MachO/ARM/relax-thumb-ldr-literal.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump
@ RUN: FileCheck < %t.dump %s
.syntax unified
@@ -9,5 +9,14 @@
_foo:
ldr r2, (_foo - 4)
-@ CHECK: ('num_reloc', 0)
-@ CHECK: ('_section_data', '5ff80820')
+@ CHECK: RelocationCount: 0
+@ CHECK: Type: 0x0
+@ CHECK: Attributes [ (0x800004)
+@ CHECK: PureInstructions (0x800000)
+@ CHECK: SomeInstructions (0x4)
+@ CHECK: ]
+@ CHECK: Reserved1: 0x0
+@ CHECK: Reserved2: 0x0
+@ CHECK: SectionData (
+@ CHECK: 0000: 5FF80820 |_.. |
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/relax-thumb2-branches.s b/test/MC/MachO/ARM/relax-thumb2-branches.s
index 7916d424078c1..fbac5fd4260cf 100644
--- a/test/MC/MachO/ARM/relax-thumb2-branches.s
+++ b/test/MC/MachO/ARM/relax-thumb2-branches.s
@@ -1,4 +1,4 @@
-@ RUN: llvm-mc -triple=thumbv7-apple-darwin -show-encoding %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+@ RUN: llvm-mc -triple=thumbv7-apple-darwin -show-encoding %s -filetype=obj -o - | llvm-readobj -s -sd | FileCheck %s
ble Lfoo @ wide encoding
@@ -10,5 +10,38 @@ Lfoo:
.space 256
Lbaz:
-@ CHECK: '_section_data', '40f38180
-@ CHECK: 000000bf 7fdd
+@ CHECK: SectionData (
+@ CHECK: 0000: 40F38180 00000000 00000000 00000000 |@...............|
+@ CHECK: 0010: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0020: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0030: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0040: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0050: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0060: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0070: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0080: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0090: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 00A0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 00B0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 00C0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 00D0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 00E0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 00F0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0100: 00000000 000000BF 7FDD0000 00000000 |................|
+@ CHECK: 0110: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0120: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0130: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0140: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0150: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0160: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0170: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0180: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0190: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 01A0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 01B0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 01C0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 01D0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 01E0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 01F0: 00000000 00000000 00000000 00000000 |................|
+@ CHECK: 0200: 00000000 00000000 0000 |..........|
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/thumb-bl-jbits.s b/test/MC/MachO/ARM/thumb-bl-jbits.s
index 9657968db5e4c..2657fd9d99d75 100644
--- a/test/MC/MachO/ARM/thumb-bl-jbits.s
+++ b/test/MC/MachO/ARM/thumb-bl-jbits.s
@@ -1,4 +1,4 @@
-@ RUN: llvm-mc -triple=thumbv7-apple-darwin -filetype=obj -o - < %s | macho-dump --dump-section-data | FileCheck %s
+@ RUN: llvm-mc -triple=thumbv7-apple-darwin -filetype=obj -o - < %s | llvm-readobj -s -sd | FileCheck %s
.thumb
.thumb_func t
t: nop
@@ -11,9 +11,17 @@ t: nop
.thumb_func b
b:
bl t
-# CHECK: '_section_data', 'c3f7fcf5'
# We are checking that the branch and link instruction which is:
# bl #-4441096
# has it displacement encoded correctly with respect to the J1 and J2 bits when
# the branch is assembled with a label not a displacement.
# rdar://10149689
+
+# CHECK: Section {
+# CHECK: Index: 2
+# CHECK: Name: __branch (5F 5F 62 72 61 6E 63 68 00 00 00 00 00 00 00 00)
+# CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+# CHECK: SectionData (
+# CHECK: 0000: C3F7FCF5 |....|
+# CHECK: )
+# CHECK: }
diff --git a/test/MC/MachO/ARM/thumb2-function-relative-load.s b/test/MC/MachO/ARM/thumb2-function-relative-load.s
index 622007dc1657a..1a91675fae580 100644
--- a/test/MC/MachO/ARM/thumb2-function-relative-load.s
+++ b/test/MC/MachO/ARM/thumb2-function-relative-load.s
@@ -1,5 +1,5 @@
@ RUN: llvm-mc -n -triple thumbv7-apple-darwin10 %s -filetype=obj -o %t.obj
-@ RUN: macho-dump --dump-section-data < %t.obj > %t.dump
+@ RUN: llvm-readobj -s -sd < %t.obj > %t.dump
@ RUN: FileCheck < %t.dump %s
.syntax unified
.text
@@ -10,4 +10,6 @@ _foo:
.subsections_via_symbols
-@ CHECK: ('_section_data', '5ff808e0')
+@ CHECK: SectionData (
+@ CHECK: 0000: 5FF808E0 |_...|
+@ CHECK: )
diff --git a/test/MC/MachO/ARM/thumb2-movt-fixup.s b/test/MC/MachO/ARM/thumb2-movt-fixup.s
index ddd95b54791e9..5cfb3f4c91867 100644
--- a/test/MC/MachO/ARM/thumb2-movt-fixup.s
+++ b/test/MC/MachO/ARM/thumb2-movt-fixup.s
@@ -1,4 +1,4 @@
-@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | macho-dump | FileCheck %s
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj -relocations -expand-relocs | FileCheck %s
_fred:
movt r3, :upper16:(_wilma-(LPC0_0+4))
@@ -7,11 +7,25 @@ LPC0_0:
_wilma:
.long 0
-@ CHECK: ('_relocations', [
-@ CHECK: # Relocation 0
-@ CHECK: (('word-0', 0xb9000000),
-@ CHECK: ('word-1', 0x4)),
-@ CHECK: # Relocation 1
-@ CHECK: (('word-0', 0xb100fffc),
-@ CHECK: ('word-1', 0x4)),
-
+@ CHECK: File: <stdin>
+@ CHECK: Format: Mach-O arm
+@ CHECK: Arch: arm
+@ CHECK: AddressSize: 32bit
+@ CHECK: Relocations [
+@ CHECK: Section __text {
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x0
+@ CHECK: PCRel: 0
+@ CHECK: Length: 3
+@ CHECK: Type: ARM_RELOC_HALF_SECTDIFF (9)
+@ CHECK: Value: 0x4
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0xFFFC
+@ CHECK: PCRel: 0
+@ CHECK: Length: 3
+@ CHECK: Type: ARM_RELOC_PAIR (1)
+@ CHECK: Value: 0x4
+@ CHECK: }
+@ CHECK: }
+@ CHECK: ]
diff --git a/test/MC/MachO/ARM/thumb2-movw-fixup.s b/test/MC/MachO/ARM/thumb2-movw-fixup.s
index 57973a874467f..9c21d9b5b50eb 100644
--- a/test/MC/MachO/ARM/thumb2-movw-fixup.s
+++ b/test/MC/MachO/ARM/thumb2-movw-fixup.s
@@ -1,4 +1,4 @@
-@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | macho-dump | FileCheck %s
+@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumbv7-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj -relocations -expand-relocs | FileCheck %s
@ rdar://10038370
@@ -17,28 +17,66 @@
L1: .long 0
L2: .long 0
-@ CHECK: ('_relocations', [
-@ CHECK: # Relocation 0
-@ CHECK: (('word-0', 0xc),
-@ CHECK: ('word-1', 0x86000002)),
-@ CHECK: # Relocation 1
-@ CHECK: (('word-0', 0x1184),
-@ CHECK: ('word-1', 0x16ffffff)),
-@ CHECK: # Relocation 2
-@ CHECK: (('word-0', 0x8),
-@ CHECK: ('word-1', 0x84000002)),
-@ CHECK: # Relocation 3
-@ CHECK: (('word-0', 0x1),
-@ CHECK: ('word-1', 0x14ffffff)),
-@ CHECK: # Relocation 4
-@ CHECK: (('word-0', 0x4),
-@ CHECK: ('word-1', 0x86000002)),
-@ CHECK: # Relocation 5
-@ CHECK: (('word-0', 0x1180),
-@ CHECK: ('word-1', 0x16ffffff)),
-@ CHECK: # Relocation 6
-@ CHECK: (('word-0', 0x0),
-@ CHECK: ('word-1', 0x84000002)),
-@ CHECK: # Relocation 7
-@ CHECK: (('word-0', 0x1),
-@ CHECK: ('word-1', 0x14ffffff)),
+@ CHECK: Format: Mach-O arm
+@ CHECK: Arch: arm
+@ CHECK: AddressSize: 32bit
+@ CHECK: Relocations [
+@ CHECK: Section __text {
+@ CHECK: Relocation {
+@ CHECK: Offset: 0xC
+@ CHECK: PCRel: 0
+@ CHECK: Length: 3
+@ CHECK: Type: ARM_RELOC_HALF (8)
+@ CHECK: Section: __data (2)
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x1184
+@ CHECK: PCRel: 0
+@ CHECK: Length: 3
+@ CHECK: Type: ARM_RELOC_PAIR (1)
+@ CHECK: Section: - (16777215)
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x8
+@ CHECK: PCRel: 0
+@ CHECK: Length: 2
+@ CHECK: Type: ARM_RELOC_HALF (8)
+@ CHECK: Section: __data (2)
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x1
+@ CHECK: PCRel: 0
+@ CHECK: Length: 2
+@ CHECK: Type: ARM_RELOC_PAIR (1)
+@ CHECK: Section: - (16777215)
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x4
+@ CHECK: PCRel: 0
+@ CHECK: Length: 3
+@ CHECK: Type: ARM_RELOC_HALF (8)
+@ CHECK: Section: __data (2)
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x1180
+@ CHECK: PCRel: 0
+@ CHECK: Length: 3
+@ CHECK: Type: ARM_RELOC_PAIR (1)
+@ CHECK: Section: - (16777215)
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x0
+@ CHECK: PCRel: 0
+@ CHECK: Length: 2
+@ CHECK: Type: ARM_RELOC_HALF (8)
+@ CHECK: Section: __data (2)
+@ CHECK: }
+@ CHECK: Relocation {
+@ CHECK: Offset: 0x1
+@ CHECK: PCRel: 0
+@ CHECK: Length: 2
+@ CHECK: Type: ARM_RELOC_PAIR (1)
+@ CHECK: Section: - (16777215)
+@ CHECK: }
+@ CHECK: }
+@ CHECK: ]
diff --git a/test/MC/MachO/ARM/tvos-version-min-load-command.s b/test/MC/MachO/ARM/tvos-version-min-load-command.s
new file mode 100644
index 0000000000000..3c9b237d69503
--- /dev/null
+++ b/test/MC/MachO/ARM/tvos-version-min-load-command.s
@@ -0,0 +1,13 @@
+// RUN: llvm-mc -triple armv7-apple-tvos %s -filetype=obj -o - | llvm-readobj --macho-version-min | FileCheck %s
+
+
+// Test the formation of the version-min load command in the MachO.
+// use a nonsense but well formed version.
+.tvos_version_min 99,8,7
+
+// CHECK: MinVersion {
+// CHECK-NEXT: Cmd: LC_VERSION_MIN_TVOS
+// CHECK-NEXT: Size: 16
+// CHECK-NEXT: Version: 99.8.7
+// CHECK-NEXT: SDK: n/a
+// CHECK-NEXT: }
diff --git a/test/MC/MachO/ARM/version-min-diagnostics.s b/test/MC/MachO/ARM/version-min-diagnostics.s
index 15d44d31661a1..76c3268dafbf4 100644
--- a/test/MC/MachO/ARM/version-min-diagnostics.s
+++ b/test/MC/MachO/ARM/version-min-diagnostics.s
@@ -15,6 +15,16 @@
.macosx_version_min 10,-1,1
.macosx_version_min 0,1,1
.macosx_version_min 70000,1
+.tvos_version_min 99,2,257
+.tvos_version_min 50,256,1
+.tvos_version_min 10,-1,1
+.tvos_version_min 0,1,1
+.tvos_version_min 70000,1
+.watchos_version_min 99,2,257
+.watchos_version_min 50,256,1
+.watchos_version_min 10,-1,1
+.watchos_version_min 0,1,1
+.watchos_version_min 70000,1
// CHECK: error: invalid OS update number
@@ -47,3 +57,33 @@
// CHECK: error: invalid OS major version number
// CHECK: .macosx_version_min 70000,1
// CHECK: ^
+// CHECK: error: invalid OS update number
+// CHECK: .tvos_version_min 99,2,257
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .tvos_version_min 50,256,1
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .tvos_version_min 10,-1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .tvos_version_min 0,1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .tvos_version_min 70000,1
+// CHECK: ^
+// CHECK: error: invalid OS update number
+// CHECK: .watchos_version_min 99,2,257
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .watchos_version_min 50,256,1
+// CHECK: ^
+// CHECK: error: invalid OS minor version number
+// CHECK: .watchos_version_min 10,-1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .watchos_version_min 0,1,1
+// CHECK: ^
+// CHECK: error: invalid OS major version number
+// CHECK: .watchos_version_min 70000,1
+// CHECK: ^
diff --git a/test/MC/MachO/ARM/version-min-diagnostics2.s b/test/MC/MachO/ARM/version-min-diagnostics2.s
new file mode 100644
index 0000000000000..0689cd41f7048
--- /dev/null
+++ b/test/MC/MachO/ARM/version-min-diagnostics2.s
@@ -0,0 +1,34 @@
+// RUN: llvm-mc -triple i386-apple-ios %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=IOS
+// RUN: llvm-mc -triple i386-apple-watchos %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=WATCHOS
+// RUN: llvm-mc -triple i386-apple-tvos %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=TVOS
+// RUN: llvm-mc -triple i386-apple-macosx %s 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=MACOSX
+
+.ios_version_min 1,2,3
+// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .ios_version_min should only be used for ios targets
+// TVOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .ios_version_min should only be used for ios targets
+// MACOSX: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .ios_version_min should only be used for ios targets
+// IOS-NOT: warning: .ios_version_min should only be used for ios targets
+
+.macosx_version_min 4,5,6
+// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .macosx_version_min should only be used for macosx targets
+// TVOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .macosx_version_min should only be used for macosx targets
+// IOS: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .macosx_version_min should only be used for macosx targets
+// MACOSX-NOT: warning: .macosx_version_min should only be used for macosx targets
+// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version_min directive
+// CHECK: version-min-diagnostics2.s:[[@LINE-12]]:1: note: previous definition is here
+
+.tvos_version_min 7,8,9
+// WATCHOS: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .tvos_version_min should only be used for tvos targets
+// MACOSX: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .tvos_version_min should only be used for tvos targets
+// IOS: version-min-diagnostics2.s:[[@LINE-3]]:1: warning: .tvos_version_min should only be used for tvos targets
+// TVOS-NOT: warning: .tvos_version_min should only be used for tvos targets
+// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version_min directive
+// CHECK: version-min-diagnostics2.s:[[@LINE-14]]:1: note: previous definition is here
+
+.watchos_version_min 10,11,12
+// MACOSX: version-min-diagnostics2.s:[[@LINE-1]]:1: warning: .watchos_version_min should only be used for watchos targets
+// IOS: version-min-diagnostics2.s:[[@LINE-2]]:1: warning: .watchos_version_min should only be used for watchos targets
+// TVOS-NOT: warning: .tvos_version_min should only be used for tvos targets
+// WATCHOS-NOT: warning: .watchos_version_min should only be used for watchos targets
+// CHECK: version-min-diagnostics2.s:[[@LINE-5]]:1: warning: overriding previous version_min directive
+// CHECK: version-min-diagnostics2.s:[[@LINE-14]]:1: note: previous definition is here
diff --git a/test/MC/MachO/ARM/version-min.s b/test/MC/MachO/ARM/version-min.s
index 0a40338ed5e07..d4840db7b6bf0 100644
--- a/test/MC/MachO/ARM/version-min.s
+++ b/test/MC/MachO/ARM/version-min.s
@@ -19,3 +19,19 @@
// CHECK: .macosx_version_min 10, 2
// CHECK: .macosx_version_min 10, 8, 1
// CHECK: .macosx_version_min 2, 0
+
+.tvos_version_min 5,2,0
+.tvos_version_min 3,2,1
+.tvos_version_min 5,0
+
+// CHECK: .tvos_version_min 5, 2
+// CHECK: .tvos_version_min 3, 2, 1
+// CHECK: .tvos_version_min 5, 0
+
+.watchos_version_min 5,2,0
+.watchos_version_min 3,2,1
+.watchos_version_min 5,0
+
+// CHECK: .watchos_version_min 5, 2
+// CHECK: .watchos_version_min 3, 2, 1
+// CHECK: .watchos_version_min 5, 0
diff --git a/test/MC/MachO/ARM/watchos-version-min-load-command.s b/test/MC/MachO/ARM/watchos-version-min-load-command.s
new file mode 100644
index 0000000000000..3df38fb6a179f
--- /dev/null
+++ b/test/MC/MachO/ARM/watchos-version-min-load-command.s
@@ -0,0 +1,13 @@
+// RUN: llvm-mc -triple armv7k-apple-watchos %s -filetype=obj -o - | llvm-readobj --macho-version-min | FileCheck %s
+
+
+// Test the formation of the version-min load command in the MachO.
+// use a nonsense but well formed version.
+.watchos_version_min 99,8,7
+
+// CHECK: MinVersion {
+// CHECK-NEXT: Cmd: LC_VERSION_MIN_WATCHOS
+// CHECK-NEXT: Size: 16
+// CHECK-NEXT: Version: 99.8.7
+// CHECK-NEXT: SDK: n/a
+// CHECK-NEXT: }
diff --git a/test/MC/MachO/PowerPC/coal-sections-powerpc.s b/test/MC/MachO/PowerPC/coal-sections-powerpc.s
new file mode 100644
index 0000000000000..1c3dc37d5bd78
--- /dev/null
+++ b/test/MC/MachO/PowerPC/coal-sections-powerpc.s
@@ -0,0 +1,46 @@
+// RUN: llvm-mc -triple powerpc-apple-darwin8 -arch=ppc32 -filetype=obj %s -o - | llvm-readobj -sections | FileCheck %s
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 0
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 1
+// CHECK-NEXT: Name: __textcoal_nt (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 2
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 3
+// CHECK-NEXT: Name: __const_coal (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 4
+// CHECK-NEXT: Name: __datacoal_nt (
+
+ .section __TEXT,__text,regular,pure_instructions
+ .machine ppc
+ .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+ .section __TEXT,__symbol_stub1,symbol_stubs,pure_instructions,16
+ .section __TEXT,__text,regular,pure_instructions
+ .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+ .globl _foo
+ .weak_definition _foo
+ .align 4
+_foo:
+ blr
+
+.subsections_via_symbols
+ .section __TEXT,__const_coal,coalesced
+ .globl _a ; @a
+ .weak_definition _a
+ .align 4
+_a:
+ .long 1 ; 0x1
+
+ .section __DATA,__datacoal_nt,coalesced
+ .globl _b ; @b
+ .weak_definition _b
+ .align 2
+_b:
+ .long 5 ; 0x5
diff --git a/test/MC/MachO/PowerPC/lit.local.cfg b/test/MC/MachO/PowerPC/lit.local.cfg
new file mode 100644
index 0000000000000..091332439b186
--- /dev/null
+++ b/test/MC/MachO/PowerPC/lit.local.cfg
@@ -0,0 +1,2 @@
+if not 'PowerPC' in config.root.targets:
+ config.unsupported = True
diff --git a/test/MC/MachO/absolute.s b/test/MC/MachO/absolute.s
index 0b22afb1b4d02..36a0ae5ec5bb6 100644
--- a/test/MC/MachO/absolute.s
+++ b/test/MC/MachO/absolute.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
_bar:
nop
@@ -17,142 +17,159 @@ foo_equals2 = (_foo - _bar + 0xffff0000)
.globl foo_set2_global;
.set foo_set2_global, (_foo - _bar + 0xffff0000)
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 256)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 152)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 2)
-// CHECK: ('file_offset', 288)
-// CHECK: ('file_size', 2)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 2)
-// CHECK: ('offset', 288)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 292)
-// CHECK: ('nsyms', 8)
-// CHECK: ('stroff', 420)
-// CHECK: ('strsize', 84)
-// CHECK: ('_string_data', '\x00foo_equals\x00_bar\x00_foo\x00foo_set2_global\x00foo_set1_global\x00foo_set2\x00foo_equals2\x00foo_set1\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 12)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_bar')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 17)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 1)
-// CHECK: ('_string', '_foo')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 75)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 4294901761)
-// CHECK: ('_string', 'foo_set1')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 54)
-// CHECK: ('n_type', 0x2)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 4294901761)
-// CHECK: ('_string', 'foo_set2')
-// CHECK: ),
-// CHECK: # Symbol 4
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4294901761)
-// CHECK: ('_string', 'foo_equals')
-// CHECK: ),
-// CHECK: # Symbol 5
-// CHECK: (('n_strx', 63)
-// CHECK: ('n_type', 0x2)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4294901761)
-// CHECK: ('_string', 'foo_equals2')
-// CHECK: ),
-// CHECK: # Symbol 6
-// CHECK: (('n_strx', 38)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 4294901761)
-// CHECK: ('_string', 'foo_set1_global')
-// CHECK: ),
-// CHECK: # Symbol 7
-// CHECK: (('n_strx', 22)
-// CHECK: ('n_type', 0x3)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 4294901761)
-// CHECK: ('_string', 'foo_set2_global')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 6)
-// CHECK: ('iextdefsym', 6)
-// CHECK: ('nextdefsym', 2)
-// CHECK: ('iundefsym', 8)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 272
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x2
+// CHECK: Offset: 304
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _bar (12)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _foo (17)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x1
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: foo_set1 (75)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0xFFFF0001
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: foo_set2 (54)
+// CHECK: Type: Abs (0x2)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0xFFFF0001
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: foo_equals (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xFFFF0001
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: foo_equals2 (63)
+// CHECK: Type: Abs (0x2)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xFFFF0001
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: foo_set1_global (38)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0xFFFF0001
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: foo_set2_global (22)
+// CHECK: Extern
+// CHECK: Type: Abs (0x2)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0xFFFF0001
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 152
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x2
+// CHECK: fileoff: 304
+// CHECK: filesize: 2
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 6
+// CHECK: iextdefsym: 6
+// CHECK: nextdefsym: 2
+// CHECK: iundefsym: 8
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/absolutize.s b/test/MC/MachO/absolutize.s
index 8947c0f65e536..1f5ed32ff72d0 100644
--- a/test/MC/MachO/absolutize.s
+++ b/test/MC/MachO/absolutize.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
_text_a:
xorl %eax,%eax
@@ -47,143 +47,151 @@ Ldata_expr_2 = Ldata_d - Ldata_c
.long _data_a + Ldata_expr_0
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 87)
-// CHECK: ('file_offset', 324)
-// CHECK: ('file_size', 87)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 43)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 412)
-// CHECK: ('num_reloc', 3)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0xa0000027),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0xa4000009),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x2)),
-// CHECK: ])
-// CHECK: ('_section_data', '31c031c0 31c031c0 b8feffff ffb8feff ffffb802 000000b8 02000000 b8020000 00b80200 0000b8fe ffffff')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 43)
-// CHECK: ('size', 44)
-// CHECK: ('offset', 367)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 436)
-// CHECK: ('num_reloc', 3)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0xa0000028),
-// CHECK: ('word-1', 0x2b)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0xa4000010),
-// CHECK: ('word-1', 0x2b)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x2f)),
-// CHECK: ])
-// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 fcffffff fcffffff 04000000 04000000 04000000 04000000 27000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 460)
-// CHECK: ('nsyms', 4)
-// CHECK: ('stroff', 508)
-// CHECK: ('strsize', 36)
-// CHECK: ('_string_data', '\x00_text_b\x00_data_b\x00_text_a\x00_data_a\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 17)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_text_a')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 2)
-// CHECK: ('_string', '_text_b')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 25)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 43)
-// CHECK: ('_string', '_data_a')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 9)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 47)
-// CHECK: ('_string', '_data_b')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 4)
-// CHECK: ('iextdefsym', 4)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 4)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x2B
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x1AC
+// CHECK: RelocationCount: 3
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 31C031C0 31C031C0 B8FEFFFF FFB8FEFF |1.1.1.1.........|
+// CHECK: 0010: FFFFB802 000000B8 02000000 B8020000 |................|
+// CHECK: 0020: 00B80200 0000B8FE FFFFFF |...........|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x2B
+// CHECK: Size: 0x2C
+// CHECK: Offset: 383
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x1C4
+// CHECK: RelocationCount: 3
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0010: FCFFFFFF FCFFFFFF 04000000 04000000 |................|
+// CHECK: 0020: 04000000 04000000 27000000 |........'...|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0x27 0 2 n/a GENERIC_RELOC_VANILLA 1 0x0
+// CHECK: 0x9 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x0
+// CHECK: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x2
+// CHECK: }
+// CHECK: Section __data {
+// CHECK: 0x28 0 2 n/a GENERIC_RELOC_VANILLA 1 0x2B
+// CHECK: 0x10 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x2B
+// CHECK: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x2F
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _text_a (17)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _text_b (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x2
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _data_a (25)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x2B
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _data_b (9)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x2F
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x57
+// CHECK: fileoff: 340
+// CHECK: filesize: 87
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 4
+// CHECK: iextdefsym: 4
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 4
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/bad-darwin-x86_64-diff-relocs.s b/test/MC/MachO/bad-darwin-x86_64-diff-relocs.s
index 1ccebc5124c37..36b5f95792423 100644
--- a/test/MC/MachO/bad-darwin-x86_64-diff-relocs.s
+++ b/test/MC/MachO/bad-darwin-x86_64-diff-relocs.s
@@ -2,4 +2,12 @@
// RUN: FileCheck --check-prefix=CHECK-ERROR < %t.err %s
.quad _foo - _bar
-// CHECK-ERROR: unsupported relocation with subtraction expression
+// CHECK-ERROR: error: unsupported relocation with subtraction expression
+
+_Y:
+.long (_Y+4)-_b
+// CHECK-ERROR: error: unsupported relocation with subtraction expression, symbol '_b' can not be undefined in a subtraction expression
+
+_Z:
+.long (_a+4)-_Z
+// CHECK-ERROR: error: unsupported relocation with subtraction expression, symbol '_a' can not be undefined in a subtraction expression
diff --git a/test/MC/MachO/bad-darwin-x86_64-reloc-expr1.s b/test/MC/MachO/bad-darwin-x86_64-reloc-expr1.s
deleted file mode 100644
index 518ae6423dbc5..0000000000000
--- a/test/MC/MachO/bad-darwin-x86_64-reloc-expr1.s
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: not llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - 2> %t.err > %t
-// RUN: FileCheck --check-prefix=CHECK-ERROR < %t.err %s
-
-_Z:
-.long (_Z+4)-_b
-// CHECK-ERROR: error: unsupported relocation with subtraction expression, symbol '_b' can not be undefined in a subtraction expression
diff --git a/test/MC/MachO/bad-darwin-x86_64-reloc-expr2.s b/test/MC/MachO/bad-darwin-x86_64-reloc-expr2.s
deleted file mode 100644
index 3aefd87c557cb..0000000000000
--- a/test/MC/MachO/bad-darwin-x86_64-reloc-expr2.s
+++ /dev/null
@@ -1,6 +0,0 @@
-// RUN: not llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - 2> %t.err > %t
-// RUN: FileCheck --check-prefix=CHECK-ERROR < %t.err %s
-
-_Z:
-.long (_a+4)-_Z
-// CHECK-ERROR: error: unsupported relocation with subtraction expression, symbol '_a' can not be undefined in a subtraction expression
diff --git a/test/MC/MachO/coal-sections-x86_64.s b/test/MC/MachO/coal-sections-x86_64.s
new file mode 100644
index 0000000000000..5ecdc578dbb62
--- /dev/null
+++ b/test/MC/MachO/coal-sections-x86_64.s
@@ -0,0 +1,48 @@
+// RUN: llvm-mc -triple x86_64-apple-darwin -filetype=obj %s -o - 2>%t.err | llvm-readobj -sections | FileCheck %s
+// RUN: FileCheck --check-prefix=WARNING < %t.err %s
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 0
+// CHECK-NEXT: Name: __text (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 1
+// CHECK-NEXT: Name: __textcoal_nt (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 2
+// CHECK-NEXT: Name: __const_coal (
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 3
+// CHECK-NEXT: Name: __datacoal_nt (
+
+// WARNING: warning: section "__textcoal_nt" is deprecated
+// WARNING: note: change section name to "__text"
+// WARNING: warning: section "__const_coal" is deprecated
+// WARNING: note: change section name to "__const"
+// WARNING: warning: section "__datacoal_nt" is deprecated
+// WARNING: note: change section name to "__data"
+
+ .section __TEXT,__textcoal_nt,coalesced,pure_instructions
+ .globl _foo
+ .weak_definition _foo
+ .align 4, 0x90
+_foo:
+ retq
+
+ .section __TEXT,__const_coal,coalesced
+ .globl _a ## @a
+ .weak_definition _a
+ .align 4
+_a:
+ .long 1 ## 0x1
+
+ .section __DATA,__datacoal_nt,coalesced
+ .globl _b ## @b
+ .weak_definition _b
+ .align 2
+_b:
+ .long 5 ## 0x5
+
+.subsections_via_symbols
diff --git a/test/MC/MachO/comm-1.s b/test/MC/MachO/comm-1.s
index cb240f98e14f7..1b64e94c2c3f3 100644
--- a/test/MC/MachO/comm-1.s
+++ b/test/MC/MachO/comm-1.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.comm sym_comm_B, 2
.comm sym_comm_A, 4
@@ -7,108 +7,119 @@
.no_dead_strip sym_comm_C
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 228)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 124)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 0)
-// CHECK: ('file_offset', 256)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 256)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 256)
-// CHECK: ('nsyms', 4)
-// CHECK: ('stroff', 304)
-// CHECK: ('strsize', 48)
-// CHECK: ('_string_data', '\x00sym_comm_D\x00sym_comm_C\x00sym_comm_B\x00sym_comm_A\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 34)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', 'sym_comm_A')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 23)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 2)
-// CHECK: ('_string', 'sym_comm_B')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 12)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 544)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', 'sym_comm_C')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 768)
-// CHECK: ('n_value', 2)
-// CHECK: ('_string', 'sym_comm_D')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 0)
-// CHECK: ('iextdefsym', 0)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 0)
-// CHECK: ('nundefsym', 4)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 244
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 272
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: sym_comm_A (34)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_comm_B (23)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x2
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_comm_C (12)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x220)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_comm_D (1)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x300)
+// CHECK: ]
+// CHECK: Value: 0x2
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 124
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x0
+// CHECK: fileoff: 272
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 0
+// CHECK: iextdefsym: 0
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 0
+// CHECK: nundefsym: 4
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/cstexpr-gotpcrel-64.ll b/test/MC/MachO/cstexpr-gotpcrel-64.ll
index bafddcb3db698..41abeb0179cc4 100644
--- a/test/MC/MachO/cstexpr-gotpcrel-64.ll
+++ b/test/MC/MachO/cstexpr-gotpcrel-64.ll
@@ -1,6 +1,7 @@
; RUN: llc -mtriple=x86_64-apple-darwin %s -o %t
; RUN: FileCheck %s -check-prefix=X86 < %t
; RUN: FileCheck %s -check-prefix=X86-GOT-EQUIV < %t
+; RUN: FileCheck %s -check-prefix=X86-NOGOT-EQUIV < %t
; GOT equivalent globals references can be replaced by the GOT entry of the
; final symbol instead.
@@ -86,10 +87,15 @@ define i32** @t1() {
}
; Do not crash when a pattern cannot be matched as a GOT equivalent
-
+define void @foo() {
+; X86-NOGOT-EQUIV-LABEL: _foo:
+; X86-NOGOT-EQUIV: leaq _b(%rip), %rax
+ store i8** @b, i8*** null
+ ret void
+}
@a = external global i8
@b = internal unnamed_addr constant i8* @a
-; X86-LABEL: _c:
-; X86: .quad _b
+; X86-NOGOT-EQUIV-LABEL: _c:
+; X86-NOGOT-EQUIV: .quad _b
@c = global i8** @b
diff --git a/test/MC/MachO/darwin-complex-difference.s b/test/MC/MachO/darwin-complex-difference.s
index f31d3ade33bc9..84940ba68f899 100644
--- a/test/MC/MachO/darwin-complex-difference.s
+++ b/test/MC/MachO/darwin-complex-difference.s
@@ -1,5 +1,5 @@
// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o %t.o
-// RUN: macho-dump --dump-section-data < %t.o > %t.dump
+// RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.o > %t.dump
// RUN: FileCheck < %t.dump %s
_a:
@@ -15,115 +15,117 @@ _c:
_d:
.long 0
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 256)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 152)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 24)
-// CHECK: ('file_offset', 288)
-// CHECK: ('file_size', 24)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 24)
-// CHECK: ('offset', 288)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 312)
-// CHECK: ('num_reloc', 4)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0xc),
-// CHECK: ('word-1', 0x5c000002)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0xc),
-// CHECK: ('word-1', 0xc000001)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0x8),
-// CHECK: ('word-1', 0x5c000002)),
-// CHECK: # Relocation 3
-// CHECK: (('word-0', 0x8),
-// CHECK: ('word-1', 0xc000001)),
-// CHECK: ])
-// CHECK: ('_section_data', '01000000 02000000 04000000 04000000 00000000 00000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 344)
-// CHECK: ('nsyms', 3)
-// CHECK: ('stroff', 392)
-// CHECK: ('strsize', 12)
-// CHECK: ('_string_data', '\x00_d\x00_c\x00_a\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 7)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_a')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 4)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 16)
-// CHECK: ('_string', '_c')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 20)
-// CHECK: ('_string', '_d')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 3)
-// CHECK: ('iextdefsym', 3)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 3)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 272
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x18
+// CHECK: Offset: 304
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x148
+// CHECK: RelocationCount: 4
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 01000000 02000000 04000000 04000000 |................|
+// CHECK: 0010: 00000000 00000000 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0xC 0 2 1 X86_64_RELOC_SUBTRACTOR 0 _d
+// CHECK: 0xC 0 2 1 X86_64_RELOC_UNSIGNED 0 _c
+// CHECK: 0x8 0 2 1 X86_64_RELOC_SUBTRACTOR 0 _d
+// CHECK: 0x8 0 2 1 X86_64_RELOC_UNSIGNED 0 _c
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _a (7)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _c (4)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x10
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _d (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x14
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 152
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x18
+// CHECK: fileoff: 304
+// CHECK: filesize: 24
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 3
+// CHECK: iextdefsym: 3
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 3
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/darwin-version-min-load-command.s b/test/MC/MachO/darwin-version-min-load-command.s
new file mode 100644
index 0000000000000..17f3784d63268
--- /dev/null
+++ b/test/MC/MachO/darwin-version-min-load-command.s
@@ -0,0 +1,28 @@
+// RUN: llvm-mc -triple x86_64-apple-macosx10.10.0 %s -filetype=obj -o - | llvm-objdump -macho -private-headers - | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-ios8.0.0 %s -filetype=obj -o - | llvm-objdump -macho -private-headers - | FileCheck %s --check-prefix=CHECK-IOS
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-objdump -macho -private-headers - | FileCheck %s --check-prefix=CHECK-DARWIN
+
+// Test version-min load command should be inferred from triple and should always be generated on Darwin
+// CHECK: Load command
+// CHECK: cmd LC_VERSION_MIN_MACOSX
+// CHECK: cmdsize 16
+// CHECK: version 10.10
+
+// CHECK-IOS: Load command
+// CHECK-IOS: cmd LC_VERSION_MIN_IPHONEOS
+// CHECK-IOS: cmdsize 16
+// CHECK-IOS: version 8.0
+
+// CHECK-DARWIN-NOT: LC_VERSION_MIN
+
+
+// RUN: llvm-mc -triple x86_64-apple-watchos1.0.0 %s -filetype=obj -o - | llvm-objdump -macho -private-headers - | FileCheck %s --check-prefix=CHECK-WATCHOS
+// RUN: llvm-mc -triple x86_64-apple-tvos8.0.0 %s -filetype=obj -o - | llvm-objdump -macho -private-headers - | FileCheck %s --check-prefix=CHECK-TVOS
+// CHECK-WATCHOS: Load command
+// CHECK-WATCHOS: cmd LC_VERSION_MIN_WATCHOS
+// CHECK-WATCHOS-NEXT: cmdsize 16
+// CHECK-WATCHOS-NEXT: version 1.0
+
+// CHECK-TVOS: cmd LC_VERSION_MIN_TVOS
+// CHECK-TVOS-NEXT: cmdsize 16
+// CHECK-TVOS-NEXT: version 8.0
diff --git a/test/MC/MachO/darwin-x86_64-diff-reloc-assign.s b/test/MC/MachO/darwin-x86_64-diff-reloc-assign.s
index 49cfa418162c3..7a7919786d411 100644
--- a/test/MC/MachO/darwin-x86_64-diff-reloc-assign.s
+++ b/test/MC/MachO/darwin-x86_64-diff-reloc-assign.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r | FileCheck %s
// Test case for rdar://10743265
@@ -17,11 +17,9 @@ _base = .
_start_ap_2:
cli
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x0),
-// CHECK: ('word-1', 0x5c000000)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0x0),
-// CHECK: ('word-1', 0xc000001)),
-// CHECK: ])
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0x0 0 2 1 X86_64_RELOC_SUBTRACTOR 0 _base
+// CHECK: 0x0 0 2 1 X86_64_RELOC_UNSIGNED 0 _start_ap_2
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/darwin-x86_64-diff-relocs.s b/test/MC/MachO/darwin-x86_64-diff-relocs.s
index eb28cf1af1585..9d69a493dd83f 100644
--- a/test/MC/MachO/darwin-x86_64-diff-relocs.s
+++ b/test/MC/MachO/darwin-x86_64-diff-relocs.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.text
@@ -117,213 +117,201 @@ _g3:
L3:
xorl %eax,%eax
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 336)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 232)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 236)
-// CHECK: ('file_offset', 368)
-// CHECK: ('file_size', 236)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 94)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 604)
-// CHECK: ('num_reloc', 12)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-
// FIXME: Unfortunately, we do not get these relocations in exactly the same
// order as Darwin 'as'. It turns out that 'as' *usually* ends up emitting
// them in reverse address order, but sometimes it allocates some
// additional relocations late so these end up precede the other entries. I
// haven't figured out the exact criteria for this yet.
-
-// CHECK: (('word-0', 0x56),
-// CHECK: ('word-1', 0x1d000004)),
-// CHECK: (('word-0', 0x50),
-// CHECK: ('word-1', 0x1d000004)),
-// CHECK: (('word-0', 0x4a),
-// CHECK: ('word-1', 0x1d000003)),
-// CHECK: (('word-0', 0x44),
-// CHECK: ('word-1', 0x1d000003)),
-// CHECK: (('word-0', 0x3e),
-// CHECK: ('word-1', 0x1d000002)),
-// CHECK: (('word-0', 0x38),
-// CHECK: ('word-1', 0x1d000002)),
-// CHECK: (('word-0', 0x20),
-// CHECK: ('word-1', 0x2d000004)),
-// CHECK: (('word-0', 0x1b),
-// CHECK: ('word-1', 0x2d000004)),
-// CHECK: (('word-0', 0x16),
-// CHECK: ('word-1', 0x2d000003)),
-// CHECK: (('word-0', 0x11),
-// CHECK: ('word-1', 0x2d000003)),
-// CHECK: (('word-0', 0xc),
-// CHECK: ('word-1', 0x2d000002)),
-// CHECK: (('word-0', 0x5),
-// CHECK: ('word-1', 0x2d000000)),
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 94)
-// CHECK: ('size', 142)
-// CHECK: ('offset', 462)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 700)
-// CHECK: ('num_reloc', 16)
-// CHECK: ('flags', 0x400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x7a),
-// CHECK: ('word-1', 0x5e000001)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0x7a),
-// CHECK: ('word-1', 0xe000002)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0x72),
-// CHECK: ('word-1', 0x5e000001)),
-// CHECK: # Relocation 3
-// CHECK: (('word-0', 0x72),
-// CHECK: ('word-1', 0xe000002)),
-// CHECK: # Relocation 4
-// CHECK: (('word-0', 0x62),
-// CHECK: ('word-1', 0xe000002)),
-// CHECK: # Relocation 5
-// CHECK: (('word-0', 0x5a),
-// CHECK: ('word-1', 0xe000002)),
-// CHECK: # Relocation 6
-// CHECK: (('word-0', 0x52),
-// CHECK: ('word-1', 0xe000001)),
-// CHECK: # Relocation 7
-// CHECK: (('word-0', 0x4a),
-// CHECK: ('word-1', 0xe000001)),
-// CHECK: # Relocation 8
-// CHECK: (('word-0', 0x3a),
-// CHECK: ('word-1', 0x5e000003)),
-// CHECK: # Relocation 9
-// CHECK: (('word-0', 0x3a),
-// CHECK: ('word-1', 0xe000004)),
-// CHECK: # Relocation 10
-// CHECK: (('word-0', 0x32),
-// CHECK: ('word-1', 0x5e000003)),
-// CHECK: # Relocation 11
-// CHECK: (('word-0', 0x32),
-// CHECK: ('word-1', 0xe000004)),
-// CHECK: # Relocation 12
-// CHECK: (('word-0', 0x22),
-// CHECK: ('word-1', 0xe000004)),
-// CHECK: # Relocation 13
-// CHECK: (('word-0', 0x1a),
-// CHECK: ('word-1', 0xe000004)),
-// CHECK: # Relocation 14
-// CHECK: (('word-0', 0x12),
-// CHECK: ('word-1', 0xe000003)),
-// CHECK: # Relocation 15
-// CHECK: (('word-0', 0xa),
-// CHECK: ('word-1', 0xe000003)),
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 828)
-// CHECK: ('nsyms', 5)
-// CHECK: ('stroff', 908)
-// CHECK: ('strsize', 24)
-// CHECK: ('_string_data', '\x00_foo\x00_g3\x00_g2\x00_g1\x00_g0\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_foo')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 18)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 2)
-// CHECK: ('_string', '_g0')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 14)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 90)
-// CHECK: ('_string', '_g1')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 10)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 94)
-// CHECK: ('_string', '_g2')
-// CHECK: ),
-// CHECK: # Symbol 4
-// CHECK: (('n_strx', 6)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 232)
-// CHECK: ('_string', '_g3')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 5)
-// CHECK: ('iextdefsym', 5)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 5)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 352
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x5E
+// CHECK: Offset: 384
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x26C
+// CHECK: RelocationCount: 12
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 31C031C0 E9040000 00EBF9E9 00000000 |1.1.............|
+// CHECK: 0010: E9000000 00E90200 0000E900 000000E9 |................|
+// CHECK: 0020: 02000000 89050400 00008905 D2FFFFFF |................|
+// CHECK: 0030: 8905CEFF FFFF8905 00000000 89050200 |................|
+// CHECK: 0040: 00008905 00000000 89050200 00008905 |................|
+// CHECK: 0050: 00000000 89050200 000031C0 31C0 |..........1.1.|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x5E
+// CHECK: Size: 0x8E
+// CHECK: Offset: 478
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x2CC
+// CHECK: RelocationCount: 16
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x4)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 31C00400 00000000 00000000 00000000 |1...............|
+// CHECK: 0010: 00000200 00000000 00000000 00000000 |................|
+// CHECK: 0020: 00000200 00000000 00000200 00000000 |................|
+// CHECK: 0030: 00000000 00000000 00000200 00000000 |................|
+// CHECK: 0040: 00000200 00000000 00000000 00000000 |................|
+// CHECK: 0050: 00000200 00000000 00000000 00000000 |................|
+// CHECK: 0060: 00000200 00000000 00000200 00000000 |................|
+// CHECK: 0070: 00000000 00000000 00000200 00000000 |................|
+// CHECK: 0080: 00000200 00000000 000031C0 31C0 |..........1.1.|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0x56 1 2 1 X86_64_RELOC_SIGNED 0 _g3
+// CHECK: 0x50 1 2 1 X86_64_RELOC_SIGNED 0 _g3
+// CHECK: 0x4A 1 2 1 X86_64_RELOC_SIGNED 0 _g2
+// CHECK: 0x44 1 2 1 X86_64_RELOC_SIGNED 0 _g2
+// CHECK: 0x3E 1 2 1 X86_64_RELOC_SIGNED 0 _g1
+// CHECK: 0x38 1 2 1 X86_64_RELOC_SIGNED 0 _g1
+// CHECK: 0x20 1 2 1 X86_64_RELOC_BRANCH 0 _g3
+// CHECK: 0x1B 1 2 1 X86_64_RELOC_BRANCH 0 _g3
+// CHECK: 0x16 1 2 1 X86_64_RELOC_BRANCH 0 _g2
+// CHECK: 0x11 1 2 1 X86_64_RELOC_BRANCH 0 _g2
+// CHECK: 0xC 1 2 1 X86_64_RELOC_BRANCH 0 _g1
+// CHECK: 0x5 1 2 1 X86_64_RELOC_BRANCH 0 _foo
+// CHECK: }
+// CHECK: Section __data {
+// CHECK: 0x7A 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g0
+// CHECK: 0x7A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1
+// CHECK: 0x72 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g0
+// CHECK: 0x72 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1
+// CHECK: 0x62 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1
+// CHECK: 0x5A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g1
+// CHECK: 0x52 0 3 1 X86_64_RELOC_UNSIGNED 0 _g0
+// CHECK: 0x4A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g0
+// CHECK: 0x3A 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g2
+// CHECK: 0x3A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3
+// CHECK: 0x32 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g2
+// CHECK: 0x32 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3
+// CHECK: 0x22 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3
+// CHECK: 0x1A 0 3 1 X86_64_RELOC_UNSIGNED 0 _g3
+// CHECK: 0x12 0 3 1 X86_64_RELOC_UNSIGNED 0 _g2
+// CHECK: 0xA 0 3 1 X86_64_RELOC_UNSIGNED 0 _g2
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _foo (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _g0 (18)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x2
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _g1 (14)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x5A
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _g2 (10)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x5E
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _g3 (6)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xE8
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0xEC
+// CHECK: fileoff: 384
+// CHECK: filesize: 236
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 5
+// CHECK: iextdefsym: 5
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 5
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/darwin-x86_64-nobase-relocs.s b/test/MC/MachO/darwin-x86_64-nobase-relocs.s
index a90b3e4d0962c..857c3541d6528 100644
--- a/test/MC/MachO/darwin-x86_64-nobase-relocs.s
+++ b/test/MC/MachO/darwin-x86_64-nobase-relocs.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -n -triple x86_64-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -n -triple x86_64-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -macho-segment | FileCheck %s
// Test case for rdar://10062261
@@ -15,44 +15,58 @@ Lbar:
mov $1, %eax
ret
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 152)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 152)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 17)
-// CHECK: ('file_offset', 184)
-// CHECK: ('file_size', 17)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 17)
-// CHECK: ('offset', 184)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '90eb080f 1f40000f 1f4000b8 01000000 c3')
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 2
+// CHECK: SizeOfLoadCommands: 168
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x11
+// CHECK: Offset: 200
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 90EB080F 1F40000F 1F4000B8 01000000 |.....@...@......|
+// CHECK: 0010: C3 |.|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 152
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x11
+// CHECK: fileoff: 200
+// CHECK: filesize: 17
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
diff --git a/test/MC/MachO/darwin-x86_64-reloc-offsets.s b/test/MC/MachO/darwin-x86_64-reloc-offsets.s
index f748064b2bf93..e7f0c5baf8dfa 100644
--- a/test/MC/MachO/darwin-x86_64-reloc-offsets.s
+++ b/test/MC/MachO/darwin-x86_64-reloc-offsets.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.data
@@ -114,230 +114,178 @@ L1:
movl %eax, L1 + 3(%rip)
movl %eax, L1 + 4(%rip)
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 336)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 232)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 358)
-// CHECK: ('file_offset', 368)
-// CHECK: ('file_size', 358)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 318)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 728)
-// CHECK: ('num_reloc', 42)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x13a),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0x134),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0x12e),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 3
-// CHECK: (('word-0', 0x128),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 4
-// CHECK: (('word-0', 0x122),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 5
-// CHECK: (('word-0', 0x11c),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 6
-// CHECK: (('word-0', 0x116),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 7
-// CHECK: (('word-0', 0x10c),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 8
-// CHECK: (('word-0', 0x102),
-// CHECK: ('word-1', 0x6d000000)),
-// CHECK: # Relocation 9
-// CHECK: (('word-0', 0xf8),
-// CHECK: ('word-1', 0x7d000000)),
-// CHECK: # Relocation 10
-// CHECK: (('word-0', 0xee),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 11
-// CHECK: (('word-0', 0xe4),
-// CHECK: ('word-1', 0x8d000000)),
-// CHECK: # Relocation 12
-// CHECK: (('word-0', 0xdd),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 13
-// CHECK: (('word-0', 0xd6),
-// CHECK: ('word-1', 0x6d000000)),
-// CHECK: # Relocation 14
-// CHECK: (('word-0', 0xd0),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 15
-// CHECK: (('word-0', 0xca),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 16
-// CHECK: (('word-0', 0xc4),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 17
-// CHECK: (('word-0', 0xbe),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 18
-// CHECK: (('word-0', 0xb8),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 19
-// CHECK: (('word-0', 0xb2),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 20
-// CHECK: (('word-0', 0xac),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 21
-// CHECK: (('word-0', 0xa2),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 22
-// CHECK: (('word-0', 0x98),
-// CHECK: ('word-1', 0x65000002)),
-// CHECK: # Relocation 23
-// CHECK: (('word-0', 0x8e),
-// CHECK: ('word-1', 0x75000002)),
-// CHECK: # Relocation 24
-// CHECK: (('word-0', 0x84),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 25
-// CHECK: (('word-0', 0x7a),
-// CHECK: ('word-1', 0x85000002)),
-// CHECK: # Relocation 26
-// CHECK: (('word-0', 0x73),
-// CHECK: ('word-1', 0x15000002)),
-// CHECK: # Relocation 27
-// CHECK: (('word-0', 0x6c),
-// CHECK: ('word-1', 0x65000002)),
-// CHECK: # Relocation 28
-// CHECK: (('word-0', 0x66),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 29
-// CHECK: (('word-0', 0x60),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 30
-// CHECK: (('word-0', 0x5a),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 31
-// CHECK: (('word-0', 0x54),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 32
-// CHECK: (('word-0', 0x4e),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 33
-// CHECK: (('word-0', 0x48),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 34
-// CHECK: (('word-0', 0x42),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 35
-// CHECK: (('word-0', 0x38),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 36
-// CHECK: (('word-0', 0x2e),
-// CHECK: ('word-1', 0x6d000000)),
-// CHECK: # Relocation 37
-// CHECK: (('word-0', 0x24),
-// CHECK: ('word-1', 0x7d000000)),
-// CHECK: # Relocation 38
-// CHECK: (('word-0', 0x1a),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 39
-// CHECK: (('word-0', 0x10),
-// CHECK: ('word-1', 0x8d000000)),
-// CHECK: # Relocation 40
-// CHECK: (('word-0', 0x9),
-// CHECK: ('word-1', 0x1d000000)),
-// CHECK: # Relocation 41
-// CHECK: (('word-0', 0x2),
-// CHECK: ('word-1', 0x6d000000)),
-// CHECK: ])
-// CHECK: ('_section_data', 'c605ffff ffff12c6 05000000 0012c705 fcffffff 78563412 c705fdff ffff7856 3412c705 feffffff 78563412 c705ffff ffff7856 3412c705 00000000 78563412 88050000 00008805 01000000 89050000 00008905 01000000 89050200 00008905 03000000 89050400 0000c605 dd000000 12c605d7 00000012 c705cc00 00007856 3412c705 c3000000 78563412 c705ba00 00007856 3412c705 b1000000 78563412 c705a800 00007856 34128805 9e000000 88059900 00008905 92000000 89058d00 00008905 88000000 89058300 00008905 7e000000 c6050300 000012c6 05040000 0012c705 00000000 78563412 c7050100 00007856 3412c705 02000000 78563412 c7050300 00007856 3412c705 04000000 78563412 88050400 00008805 05000000 89050400 00008905 05000000 89050600 00008905 07000000 89050800 0000')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 318)
-// CHECK: ('size', 40)
-// CHECK: ('offset', 686)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 1064)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 1080)
-// CHECK: ('strsize', 4)
-// CHECK: ('_string_data', '\x00_d\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 350)
-// CHECK: ('_string', '_d')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 352
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x13E
+// CHECK: Offset: 384
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x2E8
+// CHECK: RelocationCount: 42
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: C605FFFF FFFF12C6 05000000 0012C705 |................|
+// CHECK: 0010: FCFFFFFF 78563412 C705FDFF FFFF7856 |....xV4.......xV|
+// CHECK: 0020: 3412C705 FEFFFFFF 78563412 C705FFFF |4.......xV4.....|
+// CHECK: 0030: FFFF7856 3412C705 00000000 78563412 |..xV4.......xV4.|
+// CHECK: 0040: 88050000 00008805 01000000 89050000 |................|
+// CHECK: 0050: 00008905 01000000 89050200 00008905 |................|
+// CHECK: 0060: 03000000 89050400 0000C605 DD000000 |................|
+// CHECK: 0070: 12C605D7 00000012 C705CC00 00007856 |..............xV|
+// CHECK: 0080: 3412C705 C3000000 78563412 C705BA00 |4.......xV4.....|
+// CHECK: 0090: 00007856 3412C705 B1000000 78563412 |..xV4.......xV4.|
+// CHECK: 00A0: C705A800 00007856 34128805 9E000000 |......xV4.......|
+// CHECK: 00B0: 88059900 00008905 92000000 89058D00 |................|
+// CHECK: 00C0: 00008905 88000000 89058300 00008905 |................|
+// CHECK: 00D0: 7E000000 C6050300 000012C6 05040000 |~...............|
+// CHECK: 00E0: 0012C705 00000000 78563412 C7050100 |........xV4.....|
+// CHECK: 00F0: 00007856 3412C705 02000000 78563412 |..xV4.......xV4.|
+// CHECK: 0100: C7050300 00007856 3412C705 04000000 |......xV4.......|
+// CHECK: 0110: 78563412 88050400 00008805 05000000 |xV4.............|
+// CHECK: 0120: 89050400 00008905 05000000 89050600 |................|
+// CHECK: 0130: 00008905 07000000 89050800 0000 |..............|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x13E
+// CHECK: Size: 0x28
+// CHECK: Offset: 702
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0010: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0020: 00000000 00000000 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0x13A 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x134 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x12E 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x128 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x122 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x11C 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x116 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x10C 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x102 1 2 1 X86_64_RELOC_SIGNED_1 0 _d
+// CHECK: 0xF8 1 2 1 X86_64_RELOC_SIGNED_2 0 _d
+// CHECK: 0xEE 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0xE4 1 2 1 X86_64_RELOC_SIGNED_4 0 _d
+// CHECK: 0xDD 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0xD6 1 2 1 X86_64_RELOC_SIGNED_1 0 _d
+// CHECK: 0xD0 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0xCA 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0xC4 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0xBE 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0xB8 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0xB2 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0xAC 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0xA2 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0x98 1 2 0 X86_64_RELOC_SIGNED_1 0 __data
+// CHECK: 0x8E 1 2 0 X86_64_RELOC_SIGNED_2 0 __data
+// CHECK: 0x84 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0x7A 1 2 0 X86_64_RELOC_SIGNED_4 0 __data
+// CHECK: 0x73 1 2 0 X86_64_RELOC_SIGNED 0 __data
+// CHECK: 0x6C 1 2 0 X86_64_RELOC_SIGNED_1 0 __data
+// CHECK: 0x66 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x60 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x5A 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x54 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x4E 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x48 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x42 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x38 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x2E 1 2 1 X86_64_RELOC_SIGNED_1 0 _d
+// CHECK: 0x24 1 2 1 X86_64_RELOC_SIGNED_2 0 _d
+// CHECK: 0x1A 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x10 1 2 1 X86_64_RELOC_SIGNED_4 0 _d
+// CHECK: 0x9 1 2 1 X86_64_RELOC_SIGNED 0 _d
+// CHECK: 0x2 1 2 1 X86_64_RELOC_SIGNED_1 0 _d
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _d (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x15E
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x166
+// CHECK: fileoff: 384
+// CHECK: filesize: 358
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/data.s b/test/MC/MachO/data.s
index 0ff2854801ac1..90679a989f7b9 100644
--- a/test/MC/MachO/data.s
+++ b/test/MC/MachO/data.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -macho-segment | FileCheck %s
.data
.ascii "hello"
@@ -14,54 +14,67 @@
.short 0 // 50
.p2alignw 3, 0xABCD, 5 // 50
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 192)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 50)
-// CHECK: ('file_offset', 220)
-// CHECK: ('file_size', 50)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 220)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 1
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 50)
-// CHECK: ('offset', 220)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
-
// FIXME: Dump contents, so we can check those too.
+
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 2
+// CHECK: SizeOfLoadCommands: 208
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 236
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x32
+// CHECK: Offset: 236
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x32
+// CHECK: fileoff: 236
+// CHECK: filesize: 50
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
diff --git a/test/MC/MachO/debug_frame.s b/test/MC/MachO/debug_frame.s
index 247347d252a7e..d185127f4b17d 100644
--- a/test/MC/MachO/debug_frame.s
+++ b/test/MC/MachO/debug_frame.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin %s -filetype=obj -o - | llvm-readobj -s -sd -r | FileCheck %s
// Make sure MC can handle file level .cfi_startproc and .cfi_endproc that creates
// an empty frame.
@@ -26,23 +26,33 @@ Leh_func_end0:
.cfi_sections .debug_frame
Ltext_end:
-// CHECK: (('section_name', '__debug_frame\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__DWARF\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 8)
-// CHECK-NEXT: ('size', 52)
-// CHECK-NEXT: ('offset', 332)
-// CHECK-NEXT: ('alignment', 2)
-// CHECK-NEXT: ('reloc_offset', 384)
-// CHECK-NEXT: ('num_reloc', 2)
-// CHECK-NEXT: ('flags', 0x2000000)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: # Relocation 0
-// CHECK-NEXT: (('word-0', 0x2c),
-// CHECK-NEXT: ('word-1', 0x4000001)),
-// CHECK-NEXT: # Relocation 1
-// CHECK-NEXT: (('word-0', 0x1c),
-// CHECK-NEXT: ('word-1', 0x4000001)),
-// CHECK-NEXT: ])
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __debug_frame (5F 5F 64 65 62 75 67 5F 66 72 61 6D 65 00 00 00)
+// CHECK: Segment: __DWARF (5F 5F 44 57 41 52 46 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x8
+// CHECK: Size: 0x34
+// CHECK: Offset: 332
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x180
+// CHECK: RelocationCount: 2
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x20000)
+// CHECK: Debug (0x20000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 10000000 FFFFFFFF 04000400 017C080C |.............|..|
+// CHECK: 0010: 04048801 0C000000 00000000 00000000 |................|
+// CHECK: 0020: 00000000 0C000000 00000000 00000000 |................|
+// CHECK: 0030: 06000000 |....|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __debug_frame {
+// CHECK: 0x2C 0 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK: 0x1C 0 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/diff-with-two-sections.s b/test/MC/MachO/diff-with-two-sections.s
index b5e09885f318e..15784afad5584 100644
--- a/test/MC/MachO/diff-with-two-sections.s
+++ b/test/MC/MachO/diff-with-two-sections.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -macho-segment -macho-version-min | FileCheck %s
.section __TEXT,__text,regular,pure_instructions
Leh_func_begin0:
@@ -7,58 +7,81 @@ Ltmp3:
Ltmp4 = Leh_func_begin0-Ltmp3
.long Ltmp4
-// CHECK: ('cputype', 7)
-// CHECK-NEXT: ('cpusubtype', 3)
-// CHECK-NEXT: ('filetype', 1)
-// CHECK-NEXT: ('num_load_commands', 1)
-// CHECK-NEXT: ('load_commands_size', 192)
-// CHECK-NEXT: ('flag', 0)
-// CHECK-NEXT: ('load_commands', [
-// CHECK-NEXT: # Load Command 0
-// CHECK-NEXT: (('command', 1)
-// CHECK-NEXT: ('size', 192)
-// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('vm_addr', 0)
-// CHECK-NEXT: ('vm_size', 4)
-// CHECK-NEXT: ('file_offset', 220)
-// CHECK-NEXT: ('file_size', 4)
-// CHECK-NEXT: ('maxprot', 7)
-// CHECK-NEXT: ('initprot', 7)
-// CHECK-NEXT: ('num_sections', 2)
-// CHECK-NEXT: ('flags', 0)
-// CHECK-NEXT: ('sections', [
-// CHECK-NEXT: # Section 0
-// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 0)
-// CHECK-NEXT: ('size', 0)
-// CHECK-NEXT: ('offset', 220)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 0)
-// CHECK-NEXT: ('num_reloc', 0)
-// CHECK-NEXT: ('flags', 0x80000000)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '')
-// CHECK-NEXT: # Section 1
-// CHECK-NEXT: (('section_name', '__eh_frame\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 0)
-// CHECK-NEXT: ('size', 4)
-// CHECK-NEXT: ('offset', 220)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 0)
-// CHECK-NEXT: ('num_reloc', 0)
-// CHECK-NEXT: ('flags', 0x6800000b)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '00000000')
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: ])
+// CHECK: File: <stdin>
+// CHECK-NEXT: Format: Mach-O 32-bit i386
+// CHECK-NEXT: Arch: i386
+// CHECK-NEXT: AddressSize: 32bit
+// CHECK-NEXT: MachHeader {
+// CHECK-NEXT: Magic: Magic (0xFEEDFACE)
+// CHECK-NEXT: CpuType: X86 (0x7)
+// CHECK-NEXT: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK-NEXT: FileType: Relocatable (0x1)
+// CHECK-NEXT: NumOfLoadCommands: 2
+// CHECK-NEXT: SizeOfLoadCommands: 208
+// CHECK-NEXT: Flags [ (0x0)
+// CHECK-NEXT: ]
+// CHECK-NEXT: }
+// CHECK-NEXT: Sections [
+// CHECK-NEXT: Section {
+// CHECK-NEXT: Index: 0
+// CHECK-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Address: 0x0
+// CHECK-NEXT: Size: 0x0
+// CHECK-NEXT: Offset: 236
+// CHECK-NEXT: Alignment: 0
+// CHECK-NEXT: RelocationOffset: 0x0
+// CHECK-NEXT: RelocationCount: 0
+// CHECK-NEXT: Type: 0x0
+// CHECK-NEXT: Attributes [ (0x800000)
+// CHECK-NEXT: PureInstructions (0x800000)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Reserved1: 0x0
+// CHECK-NEXT: Reserved2: 0x0
+// CHECK-NEXT: SectionData (
+// CHECK-NEXT: )
+// CHECK-NEXT: }
+// CHECK-NEXT: Section {
+// CHECK-NEXT: Index: 1
+// CHECK-NEXT: Name: __eh_frame (5F 5F 65 68 5F 66 72 61 6D 65 00 00 00 00 00 00)
+// CHECK-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Address: 0x0
+// CHECK-NEXT: Size: 0x4
+// CHECK-NEXT: Offset: 236
+// CHECK-NEXT: Alignment: 0
+// CHECK-NEXT: RelocationOffset: 0x0
+// CHECK-NEXT: RelocationCount: 0
+// CHECK-NEXT: Type: 0xB
+// CHECK-NEXT: Attributes [ (0x680000)
+// CHECK-NEXT: LiveSupport (0x80000)
+// CHECK-NEXT: NoTOC (0x400000)
+// CHECK-NEXT: StripStaticSyms (0x200000)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Reserved1: 0x0
+// CHECK-NEXT: Reserved2: 0x0
+// CHECK-NEXT: SectionData (
+// CHECK-NEXT: 0000: 00000000 |....|
+// CHECK-NEXT: )
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+// CHECK-NEXT: Relocations [
+// CHECK-NEXT: ]
+// CHECK-NEXT: Segment {
+// CHECK-NEXT: Cmd: LC_SEGMENT
+// CHECK-NEXT: Name:
+// CHECK-NEXT: Size: 192
+// CHECK-NEXT: vmaddr: 0x0
+// CHECK-NEXT: vmsize: 0x4
+// CHECK-NEXT: fileoff: 236
+// CHECK-NEXT: filesize: 4
+// CHECK-NEXT: maxprot: rwx
+// CHECK-NEXT: initprot: rwx
+// CHECK-NEXT: nsects: 2
+// CHECK-NEXT: flags: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: MinVersion {
+// CHECK-NEXT: Cmd: LC_VERSION_MIN_MACOSX
+// CHECK-NEXT: Size: 16
+// CHECK-NEXT: Version: 9.0
+// CHECK-NEXT: SDK: n/a
+// CHECK-NEXT: }
diff --git a/test/MC/MachO/direction_labels.s b/test/MC/MachO/direction_labels.s
index e224ed3a14739..345a7521d7a66 100644
--- a/test/MC/MachO/direction_labels.s
+++ b/test/MC/MachO/direction_labels.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
direction_labels:
10: nop
@@ -11,85 +11,88 @@ direction_labels:
11: nop
ret
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 228)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 124)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 13)
-// CHECK: ('file_offset', 256)
-// CHECK: ('file_size', 13)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 13)
-// CHECK: ('offset', 256)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '90ebfd90 75009075 fdeb0090 c3')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 272)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 284)
-// CHECK: ('strsize', 20)
-// CHECK: ('_string_data', '\x00direction_labels\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'direction_labels')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 244
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0xD
+// CHECK: Offset: 272
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: direction_labels (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 124
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0xD
+// CHECK: fileoff: 272
+// CHECK: filesize: 13
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/empty-twice.ll b/test/MC/MachO/empty-twice.ll
new file mode 100644
index 0000000000000..6914c73a58d11
--- /dev/null
+++ b/test/MC/MachO/empty-twice.ll
@@ -0,0 +1,12 @@
+; Check that there is no persistent state in the MachO emitter that crashes
+; us when reusing the pass manager.
+; RUN: llc -mtriple=x86_64-apple-darwin -compile-twice -filetype=obj %s -o -
+
+; Force the creation of a DWARF section
+!llvm.dbg.cu = !{!0}
+!llvm.module.flags = !{!3, !4}
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "LLVM", isOptimized: true)
+!1 = !DIFile(filename: "<stdin>", directory: "/")
+!3 = !{i32 2, !"Dwarf Version", i32 4}
+!4 = !{i32 2, !"Debug Info Version", i32 3}
diff --git a/test/MC/MachO/file.s b/test/MC/MachO/file.s
index a7d6c20b885fc..108e3bbf173f2 100644
--- a/test/MC/MachO/file.s
+++ b/test/MC/MachO/file.s
@@ -9,7 +9,7 @@
// CHECK-NEXT: Segment: __DWARF
// CHECK-NEXT: Address: 0x1
// CHECK-NEXT: Size: 0x28
-// CHECK-NEXT: Offset: 221
+// CHECK-NEXT: Offset: 237
// CHECK-NEXT: Alignment: 0
// CHECK-NEXT: RelocationOffset: 0x0
// CHECK-NEXT: RelocationCount: 0
diff --git a/test/MC/MachO/gen-dwarf.s b/test/MC/MachO/gen-dwarf.s
index ad0a562aaf70d..22a8e93799d69 100644
--- a/test/MC/MachO/gen-dwarf.s
+++ b/test/MC/MachO/gen-dwarf.s
@@ -17,7 +17,7 @@ _x: .long 1
// CHECK: .debug_abbrev contents:
// CHECK: Abbrev table for offset: 0x00000000
// CHECK: [1] DW_TAG_compile_unit DW_CHILDREN_yes
-// CHECK: DW_AT_stmt_list DW_FORM_data4
+// CHECK: DW_AT_stmt_list DW_FORM_sec_offset
// CHECK: DW_AT_low_pc DW_FORM_addr
// CHECK: DW_AT_high_pc DW_FORM_addr
// CHECK: DW_AT_name DW_FORM_string
@@ -39,7 +39,7 @@ _x: .long 1
// We don't check the leading addresses these are at.
// CHECK: DW_TAG_compile_unit [1] *
-// CHECK: DW_AT_stmt_list [DW_FORM_data4] (0x00000000)
+// CHECK: DW_AT_stmt_list [DW_FORM_sec_offset] (0x00000000)
// CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000000)
// CHECK: DW_AT_high_pc [DW_FORM_addr] (0x0000000000000008)
// We don't check the file name as it is a temp directory
diff --git a/test/MC/MachO/i386-large-relocations.s b/test/MC/MachO/i386-large-relocations.s
index e5a1cfb2c5efe..e8805d37e4a1c 100644
--- a/test/MC/MachO/i386-large-relocations.s
+++ b/test/MC/MachO/i386-large-relocations.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -r | FileCheck %s
.space 0x1ed280
.section __DATA,__const
@@ -20,17 +20,11 @@ _foo:
// so the assembler falls back to non-scattered relocations.
// rdar://12358909
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x5181034),
-// CHECK: ('word-1', 0x4000003)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0x518102c),
-// CHECK: ('word-1', 0x4000003)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0x5181028),
-// CHECK: ('word-1', 0x4000003)),
-// CHECK: # Relocation 3
-// CHECK: (('word-0', 0x5181020),
-// CHECK: ('word-1', 0x4000003)),
-// CHECK: ])
+// CHECK: Relocations [
+// CHECK: Section __const {
+// CHECK: 0x5181034 0 2 0 GENERIC_RELOC_VANILLA 0 __bss
+// CHECK: 0x518102C 0 2 0 GENERIC_RELOC_VANILLA 0 __bss
+// CHECK: 0x5181028 0 2 0 GENERIC_RELOC_VANILLA 0 __bss
+// CHECK: 0x5181020 0 2 0 GENERIC_RELOC_VANILLA 0 __bss
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/indirect-symbols.s b/test/MC/MachO/indirect-symbols.s
index 079576833cfe0..4ab384821d9ed 100644
--- a/test/MC/MachO/indirect-symbols.s
+++ b/test/MC/MachO/indirect-symbols.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
_b:
_c = 0
@@ -20,169 +20,200 @@ _e:
.indirect_symbol _f
.long 0
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 260)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 27)
-// CHECK: ('file_offset', 392)
-// CHECK: ('file_size', 27)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 3)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 392)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__jump_table\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__IMPORT\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 15)
-// CHECK: ('offset', 392)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x84000008)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 5)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', 'f4f4f4f4 f4f4f4f4 f4f4f4f4 f4f4f4')
-// CHECK: # Section 2
-// CHECK: (('section_name', '__pointers\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__IMPORT\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 15)
-// CHECK: ('size', 12)
-// CHECK: ('offset', 407)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x6)
-// CHECK: ('reserved1', 3)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '00000000 00000000 00000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 444)
-// CHECK: ('nsyms', 6)
-// CHECK: ('stroff', 516)
-// CHECK: ('strsize', 20)
-// CHECK: ('_string_data', '\x00_f\x00_e\x00_d\x00_c\x00_b\x00_a\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 13)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_b')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 10)
-// CHECK: ('n_type', 0x2)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_c')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 4)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_e')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0x2)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_f')
-// CHECK: ),
-// CHECK: # Symbol 4
-// CHECK: (('n_strx', 16)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 1)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_a')
-// CHECK: ),
-// CHECK: # Symbol 5
-// CHECK: (('n_strx', 7)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_d')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 4)
-// CHECK: ('iextdefsym', 4)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 4)
-// CHECK: ('nundefsym', 2)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 420)
-// CHECK: ('nindirectsyms', 6)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: # Indirect Symbol 0
-// CHECK: (('symbol_index', 0x4),),
-// CHECK: # Indirect Symbol 1
-// CHECK: (('symbol_index', 0x0),),
-// CHECK: # Indirect Symbol 2
-// CHECK: (('symbol_index', 0x1),),
-// CHECK: # Indirect Symbol 3
-// CHECK: (('symbol_index', 0x5),),
-// CHECK: # Indirect Symbol 4
-// CHECK: (('symbol_index', 0x80000000),),
-// CHECK: # Indirect Symbol 5
-// CHECK: (('symbol_index', 0xc0000000),),
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 380
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 408
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __jump_table (5F 5F 6A 75 6D 70 5F 74 61 62 6C 65 00 00 00 00)
+// CHECK: Segment: __IMPORT (5F 5F 49 4D 50 4F 52 54 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0xF
+// CHECK: Offset: 408
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x8
+// CHECK: Attributes [ (0x840000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SelfModifyingCode (0x40000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x5
+// CHECK: SectionData (
+// CHECK: 0000: F4F4F4F4 F4F4F4F4 F4F4F4F4 F4F4F4 |...............|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __pointers (5F 5F 70 6F 69 6E 74 65 72 73 00 00 00 00 00 00)
+// CHECK: Segment: __IMPORT (5F 5F 49 4D 50 4F 52 54 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0xF
+// CHECK: Size: 0xC
+// CHECK: Offset: 423
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x6
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x3
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 00000000 |............|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _b (13)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _c (10)
+// CHECK: Type: Abs (0x2)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _e (4)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _f (1)
+// CHECK: Type: Abs (0x2)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _a (16)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _d (7)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 6
+// CHECK: Symbols [
+// CHECK: Entry {
+// CHECK: Entry Index: 0
+// CHECK: Symbol Index: 0x4
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 1
+// CHECK: Symbol Index: 0x0
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 2
+// CHECK: Symbol Index: 0x1
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 3
+// CHECK: Symbol Index: 0x5
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 4
+// CHECK: Symbol Index: 0x80000000
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 5
+// CHECK: Symbol Index: 0xC0000000
+// CHECK: }
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 260
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x1B
+// CHECK: fileoff: 408
+// CHECK: filesize: 27
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 3
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 4
+// CHECK: iextdefsym: 4
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 4
+// CHECK: nundefsym: 2
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 436
+// CHECK: nindirectsyms: 6
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/jcc.s b/test/MC/MachO/jcc.s
index 2288a20fa273a..caff25714a0c7 100644
--- a/test/MC/MachO/jcc.s
+++ b/test/MC/MachO/jcc.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -macho-segment | FileCheck %s
ja 1f
1: nop
@@ -65,42 +65,60 @@
jz 1f
1: nop
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 124)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 124)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 96)
-// CHECK: ('file_offset', 152)
-// CHECK: ('file_size', 96)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 96)
-// CHECK: ('offset', 152)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '77009073 00907200 90760090 720090e3 0090e300 90740090 7f00907d 00907c00 907e0090 76009072 00907300 90770090 73009075 00907e00 907c0090 7d00907f 00907100 907b0090 79009075 00907000 907a0090 7a00907b 00907800 90740090')
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 2
+// CHECK: SizeOfLoadCommands: 140
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x60
+// CHECK: Offset: 168
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 77009073 00907200 90760090 720090E3 |w..s..r..v..r...|
+// CHECK: 0010: 0090E300 90740090 7F00907D 00907C00 |.....t.....}..|.|
+// CHECK: 0020: 907E0090 76009072 00907300 90770090 |.~..v..r..s..w..|
+// CHECK: 0030: 73009075 00907E00 907C0090 7D00907F |s..u..~..|..}...|
+// CHECK: 0040: 00907100 907B0090 79009075 00907000 |..q..{..y..u..p.|
+// CHECK: 0050: 907A0090 7A00907B 00907800 90740090 |.z..z..{..x..t..|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 124
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x60
+// CHECK: fileoff: 168
+// CHECK: filesize: 96
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
diff --git a/test/MC/MachO/lcomm-attributes.s b/test/MC/MachO/lcomm-attributes.s
index 6e49e8016d1c8..5f902ebac4f60 100644
--- a/test/MC/MachO/lcomm-attributes.s
+++ b/test/MC/MachO/lcomm-attributes.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
// Note, this test intentionally mismatches Darwin 'as', which loses the
// following global marker.
@@ -14,123 +14,134 @@
.zerofill __DATA, __bss, sym_zfill_ext_B, 4
.globl sym_zfill_ext_B
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 16)
-// CHECK: ('file_offset', 324)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 16)
-// CHECK: ('offset', 0)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x1)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 324)
-// CHECK: ('nsyms', 4)
-// CHECK: ('stroff', 372)
-// CHECK: ('strsize', 68)
-// CHECK: ('_string_data', '\x00sym_lcomm_ext_B\x00sym_zfill_ext_B\x00sym_lcomm_ext_A\x00sym_zfill_ext_A\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 33)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lcomm_ext_A')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', 'sym_lcomm_ext_B')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 49)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', 'sym_zfill_ext_A')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 17)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 12)
-// CHECK: ('_string', 'sym_zfill_ext_B')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 0)
-// CHECK: ('iextdefsym', 0)
-// CHECK: ('nextdefsym', 4)
-// CHECK: ('iundefsym', 4)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __bss (5F 5F 62 73 73 00 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x10
+// CHECK: Offset: 0
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: LocReloc (0x1)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: sym_lcomm_ext_A (33)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lcomm_ext_B (1)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_zfill_ext_A (49)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_zfill_ext_B (17)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xC
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x10
+// CHECK: fileoff: 340
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 0
+// CHECK: iextdefsym: 0
+// CHECK: nextdefsym: 4
+// CHECK: iundefsym: 4
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/linker-option-2.s b/test/MC/MachO/linker-option-2.s
index bb5966be27343..415d02e536b36 100644
--- a/test/MC/MachO/linker-option-2.s
+++ b/test/MC/MachO/linker-option-2.s
@@ -1,25 +1,18 @@
-// RUN: llvm-mc -n -triple x86_64-apple-darwin10 %s -filetype=obj | macho-dump | FileCheck %s
-
-// CHECK: ('load_commands_size', 104)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 1
-// CHECK: (('command', 45)
-// CHECK: ('size', 16)
-// CHECK: ('count', 1)
-// CHECK: ('_strings', [
-// CHECK: "a",
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 45)
-// CHECK: ('size', 16)
-// CHECK: ('count', 2)
-// CHECK: ('_strings', [
-// CHECK: "a",
-// CHECK: "b",
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// RUN: llvm-mc -n -triple x86_64-apple-darwin10 %s -filetype=obj | llvm-readobj -macho-linker-options | FileCheck %s
.linker_option "a"
.linker_option "a", "b"
+
+// CHECK: Linker Options {
+// CHECK: Size: 16
+// CHECK: Strings [
+// CHECK: Value: a
+// CHECK: ]
+// CHECK: }
+// CHECK: Linker Options {
+// CHECK: Size: 16
+// CHECK: Strings [
+// CHECK: Value: a
+// CHECK: Value: b
+// CHECK: ]
+// CHECK: }
diff --git a/test/MC/MachO/linker-options.ll b/test/MC/MachO/linker-options.ll
index 2cda835c100cb..09ebd0f915672 100644
--- a/test/MC/MachO/linker-options.ll
+++ b/test/MC/MachO/linker-options.ll
@@ -4,35 +4,28 @@
; CHECK-ASM: .linker_option "-lz"
; CHECK-ASM-NEXT: .linker_option "-framework", "Cocoa"
-; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=obj -o - %s | macho-dump > %t
+; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=obj -o - %s | llvm-readobj -macho-linker-options > %t
; RUN: FileCheck --check-prefix=CHECK-OBJ < %t %s
-; CHECK-OBJ: ('load_commands', [
-; CHECK-OBJ: # Load Command 1
-; CHECK-OBJ: (('command', 45)
-; CHECK-OBJ: ('size', 16)
-; CHECK-OBJ: ('count', 1)
-; CHECK-OBJ: ('_strings', [
-; CHECK-OBJ: "-lz",
-; CHECK-OBJ: ])
-; CHECK-OBJ: ),
-; CHECK-OBJ: # Load Command 2
-; CHECK-OBJ: (('command', 45)
-; CHECK-OBJ: ('size', 32)
-; CHECK-OBJ: ('count', 2)
-; CHECK-OBJ: ('_strings', [
-; CHECK-OBJ: "-framework",
-; CHECK-OBJ: "Cocoa",
-; CHECK-OBJ: ])
-; CHECK-OBJ: # Load Command 3
-; CHECK-OBJ: (('command', 45)
-; CHECK-OBJ: ('size', 24)
-; CHECK-OBJ: ('count', 1)
-; CHECK-OBJ: ('_strings', [
-; CHECK-OBJ: "-lmath",
-; CHECK-OBJ: ])
-; CHECK-OBJ: ),
-; CHECK-OBJ: ])
+; CHECK-OBJ: Linker Options {
+; CHECK-OBJ: Size: 16
+; CHECK-OBJ: Strings [
+; CHECK-OBJ: Value: -lz
+; CHECK-OBJ: ]
+; CHECK-OBJ: }
+; CHECK-OBJ: Linker Options {
+; CHECK-OBJ: Size: 32
+; CHECK-OBJ: Strings [
+; CHECK-OBJ: Value: -framework
+; CHECK-OBJ: Value: Cocoa
+; CHECK-OBJ: ]
+; CHECK-OBJ: }
+; CHECK-OBJ: Linker Options {
+; CHECK-OBJ: Size: 24
+; CHECK-OBJ: Strings [
+; CHECK-OBJ: Value: -lmath
+; CHECK-OBJ: ]
+; CHECK-OBJ: }
!0 = !{i32 6, !"Linker Options", !{!{!"-lz"}, !{!"-framework", !"Cocoa"}, !{!"-lmath"}}}
diff --git a/test/MC/MachO/loc.s b/test/MC/MachO/loc.s
index 6e7faa3bf9aad..c1a2edd60909f 100644
--- a/test/MC/MachO/loc.s
+++ b/test/MC/MachO/loc.s
@@ -1,25 +1,35 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r -s -sd | FileCheck %s
.file 1 "foo"
.loc 1 64 0
nop
-// CHECK: # Section 1
-// CHECK-NEXT: (('section_name', '__debug_line\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__DWARF\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 1)
-// CHECK-NEXT: ('size', 51)
-// CHECK-NEXT: ('offset', 221)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 272)
-// CHECK-NEXT: ('num_reloc', 1)
-// CHECK-NEXT: ('flags', 0x2000000)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: # Relocation 0
-// CHECK-NEXT: (('word-0', 0x27),
-// CHECK-NEXT: ('word-1', 0x4000001)),
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '2f000000 02001a00 00000101 fb0e0d00 01010101 00000001 00000100 666f6f00 00000000 00050200 00000003 3f010201 000101')
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __debug_line (5F 5F 64 65 62 75 67 5F 6C 69 6E 65 00 00 00 00)
+// CHECK: Segment: __DWARF (5F 5F 44 57 41 52 46 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x1
+// CHECK: Size: 0x33
+// CHECK: Offset: 237
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x120
+// CHECK: RelocationCount: 1
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x20000)
+// CHECK: Debug (0x20000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 2F000000 02001A00 00000101 FB0E0D00 |/...............|
+// CHECK: 0010: 01010101 00000001 00000100 666F6F00 |............foo.|
+// CHECK: 0020: 00000000 00050200 00000003 3F010201 |............?...|
+// CHECK: 0030: 000101 |...|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __debug_line {
+// CHECK: 0x27 0 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/osx-version-min-load-command.s b/test/MC/MachO/osx-version-min-load-command.s
index cb62565cef9a5..2218d556bce51 100644
--- a/test/MC/MachO/osx-version-min-load-command.s
+++ b/test/MC/MachO/osx-version-min-load-command.s
@@ -1,10 +1,16 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj --macho-version-min | FileCheck %s
// Test the formation of the version-min load command in the MachO.
// use a nonsense but well formed version.
.macosx_version_min 25,3,1
-// CHECK: (('command', 36)
-// CHECK: ('size', 16)
-// CHECK: ('version, 1639169)
-// CHECK: ('sdk, 0)
-// CHECK: ),
+
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MinVersion {
+// CHECK: Cmd: LC_VERSION_MIN_MACOSX
+// CHECK: Size: 16
+// CHECK: Version: 25.3.1
+// CHECK: SDK: n/a
+// CHECK: }
diff --git a/test/MC/MachO/pcrel-to-other-section.s b/test/MC/MachO/pcrel-to-other-section.s
index 22a7822d9576b..cf46b0dcb0f79 100644
--- a/test/MC/MachO/pcrel-to-other-section.s
+++ b/test/MC/MachO/pcrel-to-other-section.s
@@ -1,107 +1,119 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
nop
.section __TEXT,__StaticInit,regular,pure_instructions
calll foo
-// CHECK: ('cputype', 7)
-// CHECK-NEXT: ('cpusubtype', 3)
-// CHECK-NEXT: ('filetype', 1)
-// CHECK-NEXT: ('num_load_commands', 3)
-// CHECK-NEXT: ('load_commands_size', 296)
-// CHECK-NEXT: ('flag', 0)
-// CHECK-NEXT: ('load_commands', [
-// CHECK-NEXT: # Load Command 0
-// CHECK-NEXT: (('command', 1)
-// CHECK-NEXT: ('size', 192)
-// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('vm_addr', 0)
-// CHECK-NEXT: ('vm_size', 6)
-// CHECK-NEXT: ('file_offset', 324)
-// CHECK-NEXT: ('file_size', 6)
-// CHECK-NEXT: ('maxprot', 7)
-// CHECK-NEXT: ('initprot', 7)
-// CHECK-NEXT: ('num_sections', 2)
-// CHECK-NEXT: ('flags', 0)
-// CHECK-NEXT: ('sections', [
-// CHECK-NEXT: # Section 0
-// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 0)
-// CHECK-NEXT: ('size', 1)
-// CHECK-NEXT: ('offset', 324)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 0)
-// CHECK-NEXT: ('num_reloc', 0)
-// CHECK-NEXT: ('flags', 0x80000400)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '90')
-// CHECK-NEXT: # Section 1
-// CHECK-NEXT: (('section_name', '__StaticInit\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 1)
-// CHECK-NEXT: ('size', 5)
-// CHECK-NEXT: ('offset', 325)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 332)
-// CHECK-NEXT: ('num_reloc', 1)
-// CHECK-NEXT: ('flags', 0x80000400)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: # Relocation 0
-// CHECK-NEXT: (('word-0', 0x1),
-// CHECK-NEXT: ('word-1', 0xd000000)),
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', 'e8faffff ff')
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Load Command 1
-// CHECK-NEXT: (('command', 2)
-// CHECK-NEXT: ('size', 24)
-// CHECK-NEXT: ('symoff', 340)
-// CHECK-NEXT: ('nsyms', 1)
-// CHECK-NEXT: ('stroff', 352)
-// CHECK-NEXT: ('strsize', 8)
-// CHECK-NEXT: ('_string_data', '\x00foo\x00\x00\x00\x00')
-// CHECK-NEXT: ('_symbols', [
-// CHECK-NEXT: # Symbol 0
-// CHECK-NEXT: (('n_strx', 1)
-// CHECK-NEXT: ('n_type', 0x1)
-// CHECK-NEXT: ('n_sect', 0)
-// CHECK-NEXT: ('n_desc', 0)
-// CHECK-NEXT: ('n_value', 0)
-// CHECK-NEXT: ('_string', 'foo')
-// CHECK-NEXT: ),
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Load Command 2
-// CHECK-NEXT: (('command', 11)
-// CHECK-NEXT: ('size', 80)
-// CHECK-NEXT: ('ilocalsym', 0)
-// CHECK-NEXT: ('nlocalsym', 0)
-// CHECK-NEXT: ('iextdefsym', 0)
-// CHECK-NEXT: ('nextdefsym', 0)
-// CHECK-NEXT: ('iundefsym', 0)
-// CHECK-NEXT: ('nundefsym', 1)
-// CHECK-NEXT: ('tocoff', 0)
-// CHECK-NEXT: ('ntoc', 0)
-// CHECK-NEXT: ('modtaboff', 0)
-// CHECK-NEXT: ('nmodtab', 0)
-// CHECK-NEXT: ('extrefsymoff', 0)
-// CHECK-NEXT: ('nextrefsyms', 0)
-// CHECK-NEXT: ('indirectsymoff', 0)
-// CHECK-NEXT: ('nindirectsyms', 0)
-// CHECK-NEXT: ('extreloff', 0)
-// CHECK-NEXT: ('nextrel', 0)
-// CHECK-NEXT: ('locreloff', 0)
-// CHECK-NEXT: ('nlocrel', 0)
-// CHECK-NEXT: ('_indirect_symbols', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x1
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 90 |.|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __StaticInit (5F 5F 53 74 61 74 69 63 49 6E 69 74 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x1
+// CHECK: Size: 0x5
+// CHECK: Offset: 341
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x15C
+// CHECK: RelocationCount: 1
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: E8FAFFFF FF |.....|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __StaticInit {
+// CHECK: 0x1 1 2 1 GENERIC_RELOC_VANILLA 0 foo
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: foo (1)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x6
+// CHECK: fileoff: 340
+// CHECK: filesize: 6
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 0
+// CHECK: iextdefsym: 0
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 0
+// CHECK: nundefsym: 1
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/relax-jumps.s b/test/MC/MachO/relax-jumps.s
index 65a51e92b37c4..ab68eb1d6c221 100644
--- a/test/MC/MachO/relax-jumps.s
+++ b/test/MC/MachO/relax-jumps.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -s -sd | FileCheck %s
// FIXME: This is a horrible way of checking the output, we need an llvm-mc
// based 'otool'. Use:
@@ -10,10 +10,6 @@
// diff $f.{as,mc}.dump)
// to examine the results in a more sensible fashion.
-// CHECK: ('_section_data', '90
-// CHECK: 0f8432ff ffff0f82 e6000000 0f8726ff ffff0f8f da000000 0f881aff ffff0f83 ce000000 0f890eff ffff90
-// CHECK: 9031c0')
-
L1:
.space 200, 0x90
@@ -29,3 +25,12 @@ L1:
L2:
xorl %eax, %eax
+
+// CHECK: SectionData (
+// CHECK: 00C0: 90909090 90909090 0F8432FF FFFF0F82 |..........2.....|
+// CHECK: 00D0: E6000000 0F8726FF FFFF0F8F DA000000 |......&.........|
+// CHECK: 00E0: 0F881AFF FFFF0F83 CE000000 0F890EFF |................|
+// CHECK: 00F0: FFFF9090 90909090 90909090 90909090 |................|
+// CHECK: 01A0: 90909090 90909090 90909090 90909090 |................|
+// CHECK: 01B0: 90909090 90909090 909031C0 |..........1.|
+// CHECK: )
diff --git a/test/MC/MachO/relax-recompute-align.s b/test/MC/MachO/relax-recompute-align.s
index 249402502f714..1369bcdf5aee7 100644
--- a/test/MC/MachO/relax-recompute-align.s
+++ b/test/MC/MachO/relax-recompute-align.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -s | FileCheck %s
// FIXME: This is a horrible way of checking the output, we need an llvm-mc
// based 'otool'.
@@ -8,20 +8,6 @@
// recomputed -- otherwise the second jump will appear to be out-of-range for a
// 1-byte jump.
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 306)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-
L0:
.space 0x8a, 0x90
jmp L0
@@ -35,3 +21,22 @@ L1:
L2:
.zerofill __DATA,__bss,_sym,4,2
+
+// CHECK: Section {
+// CHECK-NEXT: Index: 0
+// CHECK-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Address: 0x0
+// CHECK-NEXT: Size: 0x132
+// CHECK-NEXT: Offset: 340
+// CHECK-NEXT: Alignment: 4
+// CHECK-NEXT: RelocationOffset: 0x0
+// CHECK-NEXT: RelocationCount: 0
+// CHECK-NEXT: Type: 0x0
+// CHECK-NEXT: Attributes [ (0x800004)
+// CHECK-NEXT: PureInstructions (0x800000)
+// CHECK-NEXT: SomeInstructions (0x4)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Reserved1: 0x0
+// CHECK-NEXT: Reserved2: 0x0
+// CHECK-NEXT: }
diff --git a/test/MC/MachO/reloc-diff.s b/test/MC/MachO/reloc-diff.s
index a63a413f24b61..f9d58d97e529e 100644
--- a/test/MC/MachO/reloc-diff.s
+++ b/test/MC/MachO/reloc-diff.s
@@ -1,30 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0xa4000010),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0xa4000008),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 3
-// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 4
-// CHECK: (('word-0', 0xa4000004),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 5
-// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 6
-// CHECK: (('word-0', 0xa2000000),
-// CHECK: ('word-1', 0x0)),
-// CHECK: # Relocation 7
-// CHECK: (('word-0', 0xa1000000),
-// CHECK: ('word-1', 0x0)),
-// CHECK-NEXT: ])
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r | FileCheck %s
_local_def:
.globl _external_def
@@ -41,3 +15,16 @@ Ltemp:
.long _local_def - Ltemp
.long _external_def - Ltemp
+
+// CHECK: Relocations [
+// CHECK-NEXT: Section __data {
+// CHECK-NEXT: 0x10 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x0
+// CHECK-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x0
+// CHECK-NEXT: 0x8 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x0
+// CHECK-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x0
+// CHECK-NEXT: 0x4 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x0
+// CHECK-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x0
+// CHECK-NEXT: 0x0 0 2 n/a GENERIC_RELOC_SECTDIFF 1 0x0
+// CHECK-NEXT: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
diff --git a/test/MC/MachO/reloc-pcrel-offset.s b/test/MC/MachO/reloc-pcrel-offset.s
index e113e9616cc07..d4d6ddf48ddf1 100644
--- a/test/MC/MachO/reloc-pcrel-offset.s
+++ b/test/MC/MachO/reloc-pcrel-offset.s
@@ -1,10 +1,4 @@
-// RUN: llvm-mc -n -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
-
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x1),
-// CHECK: ('word-1', 0x5000002)),
-// CHECK-NEXT: ])
-// CHECK: ('_section_data', 'e8fbffff ff')
+// RUN: llvm-mc -n -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r -s -sd | FileCheck %s
.data
.long 0
@@ -15,3 +9,28 @@ _b:
call _a
.subsections_via_symbols
+
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x4
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 |....|
+// CHECK: )
+// CHECK: }
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0x1 1 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/reloc-pcrel.s b/test/MC/MachO/reloc-pcrel.s
index 11334150368a5..88f8828e68740 100644
--- a/test/MC/MachO/reloc-pcrel.s
+++ b/test/MC/MachO/reloc-pcrel.s
@@ -1,39 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0xe4000045),
-// CHECK: ('word-1', 0x4)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0xe1000000),
-// CHECK: ('word-1', 0x6)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0x40),
-// CHECK: ('word-1', 0xd000003)),
-// CHECK: # Relocation 3
-// CHECK: (('word-0', 0x3b),
-// CHECK: ('word-1', 0xd000003)),
-// CHECK: # Relocation 4
-// CHECK: (('word-0', 0x36),
-// CHECK: ('word-1', 0xd000003)),
-// CHECK: # Relocation 5
-// CHECK: (('word-0', 0xe0000031),
-// CHECK: ('word-1', 0x4)),
-// CHECK: # Relocation 6
-// CHECK: (('word-0', 0xe000002c),
-// CHECK: ('word-1', 0x4)),
-// CHECK: # Relocation 7
-// CHECK: (('word-0', 0x27),
-// CHECK: ('word-1', 0x5000001)),
-// CHECK: # Relocation 8
-// CHECK: (('word-0', 0xe0000022),
-// CHECK: ('word-1', 0x2)),
-// CHECK: # Relocation 9
-// CHECK: (('word-0', 0xe000001d),
-// CHECK: ('word-1', 0x2)),
-// CHECK: # Relocation 10
-// CHECK: (('word-0', 0x18),
-// CHECK: ('word-1', 0x5000001)),
-// CHECK-NEXT: ])
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r | FileCheck %s
xorl %eax,%eax
@@ -63,3 +28,19 @@ L1:
call _b - L0
.subsections_via_symbols
+
+// CHECK: Relocations [
+// CHECK-NEXT: Section __text {
+// CHECK-NEXT: 0x45 1 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x4
+// CHECK-NEXT: 0x0 1 2 n/a GENERIC_RELOC_PAIR 1 0x6
+// CHECK-NEXT: 0x40 1 2 1 GENERIC_RELOC_VANILLA 0 _c
+// CHECK-NEXT: 0x3B 1 2 1 GENERIC_RELOC_VANILLA 0 _c
+// CHECK-NEXT: 0x36 1 2 1 GENERIC_RELOC_VANILLA 0 _c
+// CHECK-NEXT: 0x31 1 2 n/a GENERIC_RELOC_VANILLA 1 0x4
+// CHECK-NEXT: 0x2C 1 2 n/a GENERIC_RELOC_VANILLA 1 0x4
+// CHECK-NEXT: 0x27 1 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK-NEXT: 0x22 1 2 n/a GENERIC_RELOC_VANILLA 1 0x2
+// CHECK-NEXT: 0x1D 1 2 n/a GENERIC_RELOC_VANILLA 1 0x2
+// CHECK-NEXT: 0x18 1 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
diff --git a/test/MC/MachO/section-align-1.s b/test/MC/MachO/section-align-1.s
index 360c0a8423135..db0716585504e 100644
--- a/test/MC/MachO/section-align-1.s
+++ b/test/MC/MachO/section-align-1.s
@@ -1,87 +1,89 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -t -file-headers -s -macho-indirect-symbols -macho-dysymtab -macho-segment | FileCheck %s
name:
.byte 0
// Check that symbol table is aligned to 4 bytes.
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 228)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 124)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 1)
-// CHECK: ('file_offset', 256)
-// CHECK: ('file_size', 1)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 1)
-// CHECK: ('offset', 256)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 260)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 272)
-// CHECK: ('strsize', 8)
-// CHECK: ('_string_data', '\x00name\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'name')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 244
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x1
+// CHECK: Offset: 272
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: name (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 124
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x1
+// CHECK: fileoff: 272
+// CHECK: filesize: 1
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/section-align-2.s b/test/MC/MachO/section-align-2.s
index 086fc4a4f15a0..4a2099a4b0cb2 100644
--- a/test/MC/MachO/section-align-2.s
+++ b/test/MC/MachO/section-align-2.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.byte 0
@@ -14,124 +14,137 @@ bar:
.const
baz:
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 260)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 13)
-// CHECK: ('file_offset', 392)
-// CHECK: ('file_size', 13)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 3)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 1)
-// CHECK: ('offset', 392)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 1
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 4)
-// CHECK: ('size', 9)
-// CHECK: ('offset', 396)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 2
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 13)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 405)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 408)
-// CHECK: ('nsyms', 3)
-// CHECK: ('stroff', 444)
-// CHECK: ('strsize', 16)
-// CHECK: ('_string_data', '\x00baz\x00bar\x00foo\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 9)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', 'foo')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 5)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 12)
-// CHECK: ('_string', 'bar')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 13)
-// CHECK: ('_string', 'baz')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 3)
-// CHECK: ('iextdefsym', 3)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 3)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 380
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x1
+// CHECK: Offset: 408
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x4
+// CHECK: Size: 0x9
+// CHECK: Offset: 412
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0xD
+// CHECK: Size: 0x0
+// CHECK: Offset: 421
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: foo (9)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: bar (5)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xC
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: baz (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __const (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xD
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 260
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0xD
+// CHECK: fileoff: 408
+// CHECK: filesize: 13
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 3
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 3
+// CHECK: iextdefsym: 3
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 3
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/section-attributes.s b/test/MC/MachO/section-attributes.s
index b21ef38ac5616..0c2913e4aca4b 100644
--- a/test/MC/MachO/section-attributes.s
+++ b/test/MC/MachO/section-attributes.s
@@ -1,7 +1,10 @@
// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o %t
-// RUN: macho-dump %t | FileCheck %s
+// RUN: llvm-readobj -s -sd %t | FileCheck %s
-// CHECK: # Section 1
-// CHECK: ('flags', 0x0)
.section __TEXT,__objc_opt_ro
.long 0
+
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
diff --git a/test/MC/MachO/section-flags.s b/test/MC/MachO/section-flags.s
index 8ac1bbff7551e..da5c4c1331765 100644
--- a/test/MC/MachO/section-flags.s
+++ b/test/MC/MachO/section-flags.s
@@ -1,14 +1,49 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
-//
-// CHECK: # Section 0
-// CHECK: 'section_name', '__text
-// CHECK: 'flags', 0x80000000
-// CHECK: # Section 1
-// CHECK: 'section_name', '__data
-// CHECK: 'flags', 0x400
-
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -s -sd | FileCheck %s
+
.text
.data
f0:
movl $0, %eax
+
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x5
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x4)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: B8000000 00 |.....|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/string-table.s b/test/MC/MachO/string-table.s
index 3a935eee0500c..0902a3477b558 100644
--- a/test/MC/MachO/string-table.s
+++ b/test/MC/MachO/string-table.s
@@ -1,100 +1,107 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
movl $a, b
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 228)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 124)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 10)
-// CHECK: ('file_offset', 256)
-// CHECK: ('file_size', 10)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 1)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 10)
-// CHECK: ('offset', 256)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 268)
-// CHECK: ('num_reloc', 2)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x6),
-// CHECK: ('word-1', 0xc000000)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0x2),
-// CHECK: ('word-1', 0xc000001)),
-// CHECK: ])
-// CHECK: ('_section_data', 'c7050000 00000000 0000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 284)
-// CHECK: ('nsyms', 2)
-// CHECK: ('stroff', 308)
-// CHECK: ('strsize', 8)
-// CHECK: ('_string_data', '\x00b\x00a\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 3)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'a')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'b')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 0)
-// CHECK: ('iextdefsym', 0)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 0)
-// CHECK: ('nundefsym', 2)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 244
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0xA
+// CHECK: Offset: 272
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x11C
+// CHECK: RelocationCount: 2
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: C7050000 00000000 0000 |..........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0x6 0 2 1 GENERIC_RELOC_VANILLA 0 a
+// CHECK: 0x2 0 2 1 GENERIC_RELOC_VANILLA 0 b
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: a (3)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: b (1)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 124
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0xA
+// CHECK: fileoff: 272
+// CHECK: filesize: 10
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 1
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 0
+// CHECK: iextdefsym: 0
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 0
+// CHECK: nundefsym: 2
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/symbol-diff.s b/test/MC/MachO/symbol-diff.s
index dae32878b8e27..2c3b52f85a85e 100644
--- a/test/MC/MachO/symbol-diff.s
+++ b/test/MC/MachO/symbol-diff.s
@@ -1,122 +1,131 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
_g:
LFB2:
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
_g.eh:
.quad LFB2-.
-// CHECK: ('cputype', 16777223)
-// CHECK-NEXT: ('cpusubtype', 3)
-// CHECK-NEXT: ('filetype', 1)
-// CHECK-NEXT: ('num_load_commands', 3)
-// CHECK-NEXT: ('load_commands_size', 336)
-// CHECK-NEXT: ('flag', 0)
-// CHECK-NEXT: ('reserved', 0)
-// CHECK-NEXT: ('load_commands', [
-// CHECK-NEXT: # Load Command 0
-// CHECK-NEXT: (('command', 25)
-// CHECK-NEXT: ('size', 232)
-// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('vm_addr', 0)
-// CHECK-NEXT: ('vm_size', 8)
-// CHECK-NEXT: ('file_offset', 368)
-// CHECK-NEXT: ('file_size', 8)
-// CHECK-NEXT: ('maxprot', 7)
-// CHECK-NEXT: ('initprot', 7)
-// CHECK-NEXT: ('num_sections', 2)
-// CHECK-NEXT: ('flags', 0)
-// CHECK-NEXT: ('sections', [
-// CHECK-NEXT: # Section 0
-// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 0)
-// CHECK-NEXT: ('size', 0)
-// CHECK-NEXT: ('offset', 368)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 0)
-// CHECK-NEXT: ('num_reloc', 0)
-// CHECK-NEXT: ('flags', 0x80000000)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ('reserved3', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '')
-// CHECK-NEXT: # Section 1
-// CHECK-NEXT: (('section_name', '__eh_frame\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 0)
-// CHECK-NEXT: ('size', 8)
-// CHECK-NEXT: ('offset', 368)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 376)
-// CHECK-NEXT: ('num_reloc', 2)
-// CHECK-NEXT: ('flags', 0x6800000b)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ('reserved3', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: # Relocation 0
-// CHECK-NEXT: (('word-0', 0x0),
-// CHECK-NEXT: ('word-1', 0x5e000001)),
-// CHECK-NEXT: # Relocation 1
-// CHECK-NEXT: (('word-0', 0x0),
-// CHECK-NEXT: ('word-1', 0xe000000)),
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '00000000 00000000')
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Load Command 1
-// CHECK-NEXT: (('command', 2)
-// CHECK-NEXT: ('size', 24)
-// CHECK-NEXT: ('symoff', 392)
-// CHECK-NEXT: ('nsyms', 2)
-// CHECK-NEXT: ('stroff', 424)
-// CHECK-NEXT: ('strsize', 12)
-// CHECK-NEXT: ('_string_data', '\x00_g.eh\x00_g\x00\x00\x00')
-// CHECK-NEXT: ('_symbols', [
-// CHECK-NEXT: # Symbol 0
-// CHECK-NEXT: (('n_strx', 7)
-// CHECK-NEXT: ('n_type', 0xe)
-// CHECK-NEXT: ('n_sect', 1)
-// CHECK-NEXT: ('n_desc', 0)
-// CHECK-NEXT: ('n_value', 0)
-// CHECK-NEXT: ('_string', '_g')
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Symbol 1
-// CHECK-NEXT: (('n_strx', 1)
-// CHECK-NEXT: ('n_type', 0xe)
-// CHECK-NEXT: ('n_sect', 2)
-// CHECK-NEXT: ('n_desc', 0)
-// CHECK-NEXT: ('n_value', 0)
-// CHECK-NEXT: ('_string', '_g.eh')
-// CHECK-NEXT: ),
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Load Command 2
-// CHECK-NEXT: (('command', 11)
-// CHECK-NEXT: ('size', 80)
-// CHECK-NEXT: ('ilocalsym', 0)
-// CHECK-NEXT: ('nlocalsym', 2)
-// CHECK-NEXT: ('iextdefsym', 2)
-// CHECK-NEXT: ('nextdefsym', 0)
-// CHECK-NEXT: ('iundefsym', 2)
-// CHECK-NEXT: ('nundefsym', 0)
-// CHECK-NEXT: ('tocoff', 0)
-// CHECK-NEXT: ('ntoc', 0)
-// CHECK-NEXT: ('modtaboff', 0)
-// CHECK-NEXT: ('nmodtab', 0)
-// CHECK-NEXT: ('extrefsymoff', 0)
-// CHECK-NEXT: ('nextrefsyms', 0)
-// CHECK-NEXT: ('indirectsymoff', 0)
-// CHECK-NEXT: ('nindirectsyms', 0)
-// CHECK-NEXT: ('extreloff', 0)
-// CHECK-NEXT: ('nextrel', 0)
-// CHECK-NEXT: ('locreloff', 0)
-// CHECK-NEXT: ('nlocrel', 0)
-// CHECK-NEXT: ('_indirect_symbols', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT:])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 352
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 384
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __eh_frame (5F 5F 65 68 5F 66 72 61 6D 65 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x8
+// CHECK: Offset: 384
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x188
+// CHECK: RelocationCount: 2
+// CHECK: Type: 0xB
+// CHECK: Attributes [ (0x680000)
+// CHECK: LiveSupport (0x80000)
+// CHECK: NoTOC (0x400000)
+// CHECK: StripStaticSyms (0x200000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __eh_frame {
+// CHECK: 0x0 0 3 1 X86_64_RELOC_SUBTRACTOR 0 _g.eh
+// CHECK: 0x0 0 3 1 X86_64_RELOC_UNSIGNED 0 _g
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _g (7)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _g.eh (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __eh_frame (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x8
+// CHECK: fileoff: 384
+// CHECK: filesize: 8
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 2
+// CHECK: iextdefsym: 2
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 2
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/symbol-flags.s b/test/MC/MachO/symbol-flags.s
index 561d88a14e736..8f001e5c612ea 100644
--- a/test/MC/MachO/symbol-flags.s
+++ b/test/MC/MachO/symbol-flags.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.reference sym_ref_A
.reference sym_ref_def_A
@@ -59,283 +59,349 @@ sym_symbol_resolver_A:
.desc sym_desc_flags,0x47
sym_desc_flags:
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 0)
-// CHECK: ('file_offset', 324)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 324)
-// CHECK: ('nsyms', 24)
-// CHECK: ('stroff', 612)
-// CHECK: ('strsize', 388)
-// CHECK: ('_string_data', '\x00sym_desc_flags\x00sym_private_ext_E\x00sym_lazy_ref_E\x00sym_ref_def_E\x00sym_private_ext_D\x00sym_lazy_ref_D\x00sym_ref_def_D\x00sym_private_ext_C\x00sym_lazy_ref_C\x00sym_weak_def_C\x00sym_ref_def_C\x00sym_private_ext_B\x00sym_lazy_ref_B\x00sym_weak_def_B\x00sym_weak_ref_def_B\x00sym_private_ext_A\x00sym_symbol_resolver_A\x00sym_no_dead_strip_A\x00sym_lazy_ref_A\x00sym_ref_A\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_ref_def_A\x00sym_weak_ref_def_A\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 354)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_ref_def_A')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 158)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_ref_def_C')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 368)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 64)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_weak_ref_def_A')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 220)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_weak_ref_def_B')
-// CHECK: ),
-// CHECK: # Symbol 4
-// CHECK: (('n_strx', 190)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lazy_ref_B')
-// CHECK: ),
-// CHECK: # Symbol 5
-// CHECK: (('n_strx', 128)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lazy_ref_C')
-// CHECK: ),
-// CHECK: # Symbol 6
-// CHECK: (('n_strx', 257)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 256)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_symbol_resolver_A')
-// CHECK: ),
-// CHECK: # Symbol 7
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 64)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_desc_flags')
-// CHECK: ),
-// CHECK: # Symbol 8
-// CHECK: (('n_strx', 172)
-// CHECK: ('n_type', 0x1f)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_private_ext_B')
-// CHECK: ),
-// CHECK: # Symbol 9
-// CHECK: (('n_strx', 110)
-// CHECK: ('n_type', 0x1f)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_private_ext_C')
-// CHECK: ),
-// CHECK: # Symbol 10
-// CHECK: (('n_strx', 339)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 128)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_weak_def_A')
-// CHECK: ),
-// CHECK: # Symbol 11
-// CHECK: (('n_strx', 205)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 128)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_weak_def_B')
-// CHECK: ),
-// CHECK: # Symbol 12
-// CHECK: (('n_strx', 143)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 128)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_weak_def_C')
-// CHECK: ),
-// CHECK: # Symbol 13
-// CHECK: (('n_strx', 299)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 33)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lazy_ref_A')
-// CHECK: ),
-// CHECK: # Symbol 14
-// CHECK: (('n_strx', 81)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lazy_ref_D')
-// CHECK: ),
-// CHECK: # Symbol 15
-// CHECK: (('n_strx', 34)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 33)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lazy_ref_E')
-// CHECK: ),
-// CHECK: # Symbol 16
-// CHECK: (('n_strx', 279)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_no_dead_strip_A')
-// CHECK: ),
-// CHECK: # Symbol 17
-// CHECK: (('n_strx', 239)
-// CHECK: ('n_type', 0x11)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_private_ext_A')
-// CHECK: ),
-// CHECK: # Symbol 18
-// CHECK: (('n_strx', 63)
-// CHECK: ('n_type', 0x11)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_private_ext_D')
-// CHECK: ),
-// CHECK: # Symbol 19
-// CHECK: (('n_strx', 16)
-// CHECK: ('n_type', 0x11)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_private_ext_E')
-// CHECK: ),
-// CHECK: # Symbol 20
-// CHECK: (('n_strx', 314)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 4660)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_ref_A')
-// CHECK: ),
-// CHECK: # Symbol 21
-// CHECK: (('n_strx', 96)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_ref_def_D')
-// CHECK: ),
-// CHECK: # Symbol 22
-// CHECK: (('n_strx', 49)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 32)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_ref_def_E')
-// CHECK: ),
-// CHECK: # Symbol 23
-// CHECK: (('n_strx', 324)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 64)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_weak_ref_A')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 8)
-// CHECK: ('iextdefsym', 8)
-// CHECK: ('nextdefsym', 5)
-// CHECK: ('iundefsym', 13)
-// CHECK: ('nundefsym', 11)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: sym_ref_def_A (354)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_ref_def_C (158)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_weak_ref_def_A (368)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x40)
+// CHECK: WeakRef (0x40)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_weak_ref_def_B (220)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lazy_ref_B (190)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lazy_ref_C (128)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_symbol_resolver_A (257)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x100)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_desc_flags (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x40)
+// CHECK: WeakRef (0x40)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_private_ext_B (172)
+// CHECK: PrivateExtern
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_private_ext_C (110)
+// CHECK: PrivateExtern
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_weak_def_A (339)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x80)
+// CHECK: WeakDef (0x80)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_weak_def_B (205)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x80)
+// CHECK: WeakDef (0x80)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_weak_def_C (143)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x80)
+// CHECK: WeakDef (0x80)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lazy_ref_A (299)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lazy_ref_D (81)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lazy_ref_E (34)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_no_dead_strip_A (279)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_private_ext_A (239)
+// CHECK: PrivateExtern
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_private_ext_D (63)
+// CHECK: PrivateExtern
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_private_ext_E (16)
+// CHECK: PrivateExtern
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_ref_A (314)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: ReferenceFlagPrivateUndefinedNonLazy (0x4)
+// CHECK: Flags [ (0x1230)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ReferencedDynamically (0x10)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_ref_def_D (96)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_ref_def_E (49)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x20)
+// CHECK: NoDeadStrip (0x20)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_weak_ref_A (324)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x40)
+// CHECK: WeakRef (0x40)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x0
+// CHECK: fileoff: 340
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 8
+// CHECK: iextdefsym: 8
+// CHECK: nextdefsym: 5
+// CHECK: iundefsym: 13
+// CHECK: nundefsym: 11
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/symbol-indirect.s b/test/MC/MachO/symbol-indirect.s
index 1cdeed1f4ef6e..c0012b7035530 100644
--- a/test/MC/MachO/symbol-indirect.s
+++ b/test/MC/MachO/symbol-indirect.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
// FIXME: We are missing a lot of diagnostics on this kind of stuff which the
// assembler has.
@@ -69,200 +69,248 @@ sym_nlp_G:
.indirect_symbol sym_nlp_G
.long 0
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 260)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 40)
-// CHECK: ('file_offset', 392)
-// CHECK: ('file_size', 40)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 3)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 392)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 1
-// CHECK: (('section_name', '__la_symbol_ptr\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 20)
-// CHECK: ('offset', 392)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x7)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 2
-// CHECK: (('section_name', '__nl_symbol_ptr\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 20)
-// CHECK: ('size', 20)
-// CHECK: ('offset', 412)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x6)
- // FIXME: Enable this when fixed!
-// CHECX: ('reserved1', 5)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 472)
-// CHECK: ('nsyms', 10)
-// CHECK: ('stroff', 592)
-// CHECK: ('strsize', 104)
-// CHECK: ('_string_data', '\x00sym_lsp_G\x00sym_nlp_G\x00sym_lsp_E\x00sym_nlp_E\x00sym_lsp_C\x00sym_nlp_C\x00sym_lsp_B\x00sym_nlp_B\x00sym_lsp_A\x00sym_nlp_A\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 41)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', 'sym_lsp_C')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 51)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 28)
-// CHECK: ('_string', 'sym_nlp_C')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 16)
-// CHECK: ('_string', 'sym_lsp_G')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 11)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 36)
-// CHECK: ('_string', 'sym_nlp_G')
-// CHECK: ),
-// CHECK: # Symbol 4
-// CHECK: (('n_strx', 81)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lsp_A')
-// CHECK: ),
-// CHECK: # Symbol 5
-// CHECK: (('n_strx', 61)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 1)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lsp_B')
-// CHECK: ),
-// CHECK: # Symbol 6
-// CHECK: (('n_strx', 21)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 1)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lsp_E')
-// CHECK: ),
-// CHECK: # Symbol 7
-// CHECK: (('n_strx', 91)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_nlp_A')
-// CHECK: ),
-// CHECK: # Symbol 8
-// CHECK: (('n_strx', 71)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_nlp_B')
-// CHECK: ),
-// CHECK: # Symbol 9
-// CHECK: (('n_strx', 31)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_nlp_E')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 2)
-// CHECK: ('iextdefsym', 2)
-// CHECK: ('nextdefsym', 2)
-// CHECK: ('iundefsym', 4)
-// CHECK: ('nundefsym', 6)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 432)
-// CHECK: ('nindirectsyms', 10)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: # Indirect Symbol 0
-// CHECK: (('symbol_index', 0x5),),
-// CHECK: # Indirect Symbol 1
-// CHECK: (('symbol_index', 0x4),),
-// CHECK: # Indirect Symbol 2
-// CHECK: (('symbol_index', 0x0),),
-// CHECK: # Indirect Symbol 3
-// CHECK: (('symbol_index', 0x6),),
-// CHECK: # Indirect Symbol 4
-// CHECK: (('symbol_index', 0x2),),
-// CHECK: # Indirect Symbol 5
-// CHECK: (('symbol_index', 0x8),),
-// CHECK: # Indirect Symbol 6
-// CHECK: (('symbol_index', 0x7),),
-// CHECK: # Indirect Symbol 7
-// CHECK: (('symbol_index', 0x80000000),),
-// CHECK: # Indirect Symbol 8
-// CHECK: (('symbol_index', 0x9),),
-// CHECK: # Indirect Symbol 9
-// CHECK: (('symbol_index', 0x3),),
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 380
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 408
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x14
+// CHECK: Offset: 408
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x7
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x14
+// CHECK: Size: 0x14
+// CHECK: Offset: 428
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x6
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x5
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: sym_lsp_C (41)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __la_symbol_ptr (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_nlp_C (51)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __nl_symbol_ptr (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x1C
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lsp_G (1)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __la_symbol_ptr (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x10
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_nlp_G (11)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __nl_symbol_ptr (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x24
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lsp_A (81)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lsp_B (61)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lsp_E (21)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_nlp_A (91)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_nlp_B (71)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_nlp_E (31)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 10
+// CHECK: Symbols [
+// CHECK: Entry {
+// CHECK: Entry Index: 0
+// CHECK: Symbol Index: 0x5
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 1
+// CHECK: Symbol Index: 0x4
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 2
+// CHECK: Symbol Index: 0x0
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 3
+// CHECK: Symbol Index: 0x6
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 4
+// CHECK: Symbol Index: 0x2
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 5
+// CHECK: Symbol Index: 0x8
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 6
+// CHECK: Symbol Index: 0x7
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 7
+// CHECK: Symbol Index: 0x80000000
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 8
+// CHECK: Symbol Index: 0x9
+// CHECK: }
+// CHECK: Entry {
+// CHECK: Entry Index: 9
+// CHECK: Symbol Index: 0x3
+// CHECK: }
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 260
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x28
+// CHECK: fileoff: 408
+// CHECK: filesize: 40
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 3
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 2
+// CHECK: iextdefsym: 2
+// CHECK: nextdefsym: 2
+// CHECK: iundefsym: 4
+// CHECK: nundefsym: 6
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 448
+// CHECK: nindirectsyms: 10
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/symbols-1.s b/test/MC/MachO/symbols-1.s
index 8b663dc71762b..bec31bb734597 100644
--- a/test/MC/MachO/symbols-1.s
+++ b/test/MC/MachO/symbols-1.s
@@ -1,5 +1,5 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck -check-prefix CHECK-X86_32 %s
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck -check-prefix CHECK-X86_64 %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck -check-prefix CHECK-X86_32 %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck -check-prefix CHECK-X86_64 %s
sym_local_B:
.globl sym_globl_def_B
@@ -17,294 +17,330 @@ sym_globl_def_C:
Lsym_asm_temp:
.long 0
-// CHECK-X86_32: ('cputype', 7)
-// CHECK-X86_32: ('cpusubtype', 3)
-// CHECK-X86_32: ('filetype', 1)
-// CHECK-X86_32: ('num_load_commands', 3)
-// CHECK-X86_32: ('load_commands_size', 228)
-// CHECK-X86_32: ('flag', 0)
-// CHECK-X86_32: ('load_commands', [
-// CHECK-X86_32: # Load Command 0
-// CHECK-X86_32: (('command', 1)
-// CHECK-X86_32: ('size', 124)
-// CHECK-X86_32: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_32: ('vm_addr', 0)
-// CHECK-X86_32: ('vm_size', 4)
-// CHECK-X86_32: ('file_offset', 256)
-// CHECK-X86_32: ('file_size', 4)
-// CHECK-X86_32: ('maxprot', 7)
-// CHECK-X86_32: ('initprot', 7)
-// CHECK-X86_32: ('num_sections', 1)
-// CHECK-X86_32: ('flags', 0)
-// CHECK-X86_32: ('sections', [
-// CHECK-X86_32: # Section 0
-// CHECK-X86_32: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_32: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_32: ('address', 0)
-// CHECK-X86_32: ('size', 4)
-// CHECK-X86_32: ('offset', 256)
-// CHECK-X86_32: ('alignment', 0)
-// CHECK-X86_32: ('reloc_offset', 0)
-// CHECK-X86_32: ('num_reloc', 0)
-// CHECK-X86_32: ('flags', 0x80000000)
-// CHECK-X86_32: ('reserved1', 0)
-// CHECK-X86_32: ('reserved2', 0)
-// CHECK-X86_32: ),
-// CHECK-X86_32: ])
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Load Command 1
-// CHECK-X86_32: (('command', 2)
-// CHECK-X86_32: ('size', 24)
-// CHECK-X86_32: ('symoff', 260)
-// CHECK-X86_32: ('nsyms', 9)
-// CHECK-X86_32: ('stroff', 368)
-// CHECK-X86_32: ('strsize', 140)
-// CHECK-X86_32: ('_string_data', '\x00sym_local_C\x00sym_globl_undef_C\x00sym_globl_def_C\x00sym_local_B\x00sym_globl_undef_B\x00sym_globl_def_B\x00sym_local_A\x00sym_globl_undef_A\x00sym_globl_def_A\x00\x00')
-// CHECK-X86_32: ('_symbols', [
-// CHECK-X86_32: # Symbol 0
-// CHECK-X86_32: (('n_strx', 47)
-// CHECK-X86_32: ('n_type', 0xe)
-// CHECK-X86_32: ('n_sect', 1)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_local_B')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 1
-// CHECK-X86_32: (('n_strx', 93)
-// CHECK-X86_32: ('n_type', 0xe)
-// CHECK-X86_32: ('n_sect', 1)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_local_A')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 2
-// CHECK-X86_32: (('n_strx', 1)
-// CHECK-X86_32: ('n_type', 0xe)
-// CHECK-X86_32: ('n_sect', 1)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_local_C')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 3
-// CHECK-X86_32: (('n_strx', 123)
-// CHECK-X86_32: ('n_type', 0xf)
-// CHECK-X86_32: ('n_sect', 1)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_globl_def_A')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 4
-// CHECK-X86_32: (('n_strx', 77)
-// CHECK-X86_32: ('n_type', 0xf)
-// CHECK-X86_32: ('n_sect', 1)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_globl_def_B')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 5
-// CHECK-X86_32: (('n_strx', 31)
-// CHECK-X86_32: ('n_type', 0xf)
-// CHECK-X86_32: ('n_sect', 1)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_globl_def_C')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 6
-// CHECK-X86_32: (('n_strx', 105)
-// CHECK-X86_32: ('n_type', 0x1)
-// CHECK-X86_32: ('n_sect', 0)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_globl_undef_A')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 7
-// CHECK-X86_32: (('n_strx', 59)
-// CHECK-X86_32: ('n_type', 0x1)
-// CHECK-X86_32: ('n_sect', 0)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_globl_undef_B')
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Symbol 8
-// CHECK-X86_32: (('n_strx', 13)
-// CHECK-X86_32: ('n_type', 0x1)
-// CHECK-X86_32: ('n_sect', 0)
-// CHECK-X86_32: ('n_desc', 0)
-// CHECK-X86_32: ('n_value', 0)
-// CHECK-X86_32: ('_string', 'sym_globl_undef_C')
-// CHECK-X86_32: ),
-// CHECK-X86_32: ])
-// CHECK-X86_32: ),
-// CHECK-X86_32: # Load Command 2
-// CHECK-X86_32: (('command', 11)
-// CHECK-X86_32: ('size', 80)
-// CHECK-X86_32: ('ilocalsym', 0)
-// CHECK-X86_32: ('nlocalsym', 3)
-// CHECK-X86_32: ('iextdefsym', 3)
-// CHECK-X86_32: ('nextdefsym', 3)
-// CHECK-X86_32: ('iundefsym', 6)
-// CHECK-X86_32: ('nundefsym', 3)
-// CHECK-X86_32: ('tocoff', 0)
-// CHECK-X86_32: ('ntoc', 0)
-// CHECK-X86_32: ('modtaboff', 0)
-// CHECK-X86_32: ('nmodtab', 0)
-// CHECK-X86_32: ('extrefsymoff', 0)
-// CHECK-X86_32: ('nextrefsyms', 0)
-// CHECK-X86_32: ('indirectsymoff', 0)
-// CHECK-X86_32: ('nindirectsyms', 0)
-// CHECK-X86_32: ('extreloff', 0)
-// CHECK-X86_32: ('nextrel', 0)
-// CHECK-X86_32: ('locreloff', 0)
-// CHECK-X86_32: ('nlocrel', 0)
-// CHECK-X86_32: ('_indirect_symbols', [
-// CHECK-X86_32: ])
-// CHECK-X86_32: ),
-// CHECK-X86_32: ])
+// CHECK-X86_32: File: <stdin>
+// CHECK-X86_32: Format: Mach-O 32-bit i386
+// CHECK-X86_32: Arch: i386
+// CHECK-X86_32: AddressSize: 32bit
+// CHECK-X86_32: MachHeader {
+// CHECK-X86_32: Magic: Magic (0xFEEDFACE)
+// CHECK-X86_32: CpuType: X86 (0x7)
+// CHECK-X86_32: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK-X86_32: FileType: Relocatable (0x1)
+// CHECK-X86_32: NumOfLoadCommands: 4
+// CHECK-X86_32: SizeOfLoadCommands: 244
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: }
+// CHECK-X86_32: Sections [
+// CHECK-X86_32: Section {
+// CHECK-X86_32: Index: 0
+// CHECK-X86_32: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_32: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_32: Address: 0x0
+// CHECK-X86_32: Size: 0x4
+// CHECK-X86_32: Offset: 272
+// CHECK-X86_32: Alignment: 0
+// CHECK-X86_32: RelocationOffset: 0x0
+// CHECK-X86_32: RelocationCount: 0
+// CHECK-X86_32: Type: 0x0
+// CHECK-X86_32: Attributes [ (0x800000)
+// CHECK-X86_32: PureInstructions (0x800000)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Reserved1: 0x0
+// CHECK-X86_32: Reserved2: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: ]
+// CHECK-X86_32: Relocations [
+// CHECK-X86_32: ]
+// CHECK-X86_32: Symbols [
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_local_B (47)
+// CHECK-X86_32: Type: Section (0xE)
+// CHECK-X86_32: Section: __text (0x1)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_local_A (93)
+// CHECK-X86_32: Type: Section (0xE)
+// CHECK-X86_32: Section: __text (0x1)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_local_C (1)
+// CHECK-X86_32: Type: Section (0xE)
+// CHECK-X86_32: Section: __text (0x1)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_globl_def_A (123)
+// CHECK-X86_32: Extern
+// CHECK-X86_32: Type: Section (0xE)
+// CHECK-X86_32: Section: __text (0x1)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_globl_def_B (77)
+// CHECK-X86_32: Extern
+// CHECK-X86_32: Type: Section (0xE)
+// CHECK-X86_32: Section: __text (0x1)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_globl_def_C (31)
+// CHECK-X86_32: Extern
+// CHECK-X86_32: Type: Section (0xE)
+// CHECK-X86_32: Section: __text (0x1)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_globl_undef_A (105)
+// CHECK-X86_32: Extern
+// CHECK-X86_32: Type: Undef (0x0)
+// CHECK-X86_32: Section: (0x0)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_globl_undef_B (59)
+// CHECK-X86_32: Extern
+// CHECK-X86_32: Type: Undef (0x0)
+// CHECK-X86_32: Section: (0x0)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Symbol {
+// CHECK-X86_32: Name: sym_globl_undef_C (13)
+// CHECK-X86_32: Extern
+// CHECK-X86_32: Type: Undef (0x0)
+// CHECK-X86_32: Section: (0x0)
+// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_32: Flags [ (0x0)
+// CHECK-X86_32: ]
+// CHECK-X86_32: Value: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: ]
+// CHECK-X86_32: Indirect Symbols {
+// CHECK-X86_32: Number: 0
+// CHECK-X86_32: Symbols [
+// CHECK-X86_32: ]
+// CHECK-X86_32: }
+// CHECK-X86_32: Segment {
+// CHECK-X86_32: Cmd: LC_SEGMENT
+// CHECK-X86_32: Name:
+// CHECK-X86_32: Size: 124
+// CHECK-X86_32: vmaddr: 0x0
+// CHECK-X86_32: vmsize: 0x4
+// CHECK-X86_32: fileoff: 272
+// CHECK-X86_32: filesize: 4
+// CHECK-X86_32: maxprot: rwx
+// CHECK-X86_32: initprot: rwx
+// CHECK-X86_32: nsects: 1
+// CHECK-X86_32: flags: 0x0
+// CHECK-X86_32: }
+// CHECK-X86_32: Dysymtab {
+// CHECK-X86_32: ilocalsym: 0
+// CHECK-X86_32: nlocalsym: 3
+// CHECK-X86_32: iextdefsym: 3
+// CHECK-X86_32: nextdefsym: 3
+// CHECK-X86_32: iundefsym: 6
+// CHECK-X86_32: nundefsym: 3
+// CHECK-X86_32: tocoff: 0
+// CHECK-X86_32: ntoc: 0
+// CHECK-X86_32: modtaboff: 0
+// CHECK-X86_32: nmodtab: 0
+// CHECK-X86_32: extrefsymoff: 0
+// CHECK-X86_32: nextrefsyms: 0
+// CHECK-X86_32: indirectsymoff: 0
+// CHECK-X86_32: nindirectsyms: 0
+// CHECK-X86_32: extreloff: 0
+// CHECK-X86_32: nextrel: 0
+// CHECK-X86_32: locreloff: 0
+// CHECK-X86_32: nlocrel: 0
+// CHECK-X86_32: }
-// CHECK-X86_64: ('cputype', 16777223)
-// CHECK-X86_64: ('cpusubtype', 3)
-// CHECK-X86_64: ('filetype', 1)
-// CHECK-X86_64: ('num_load_commands', 3)
-// CHECK-X86_64: ('load_commands_size', 256)
-// CHECK-X86_64: ('flag', 0)
-// CHECK-X86_64: ('reserved', 0)
-// CHECK-X86_64: ('load_commands', [
-// CHECK-X86_64: # Load Command 0
-// CHECK-X86_64: (('command', 25)
-// CHECK-X86_64: ('size', 152)
-// CHECK-X86_64: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('vm_addr', 0)
-// CHECK-X86_64: ('vm_size', 4)
-// CHECK-X86_64: ('file_offset', 288)
-// CHECK-X86_64: ('file_size', 4)
-// CHECK-X86_64: ('maxprot', 7)
-// CHECK-X86_64: ('initprot', 7)
-// CHECK-X86_64: ('num_sections', 1)
-// CHECK-X86_64: ('flags', 0)
-// CHECK-X86_64: ('sections', [
-// CHECK-X86_64: # Section 0
-// CHECK-X86_64: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('address', 0)
-// CHECK-X86_64: ('size', 4)
-// CHECK-X86_64: ('offset', 288)
-// CHECK-X86_64: ('alignment', 0)
-// CHECK-X86_64: ('reloc_offset', 0)
-// CHECK-X86_64: ('num_reloc', 0)
-// CHECK-X86_64: ('flags', 0x80000000)
-// CHECK-X86_64: ('reserved1', 0)
-// CHECK-X86_64: ('reserved2', 0)
-// CHECK-X86_64: ('reserved3', 0)
-// CHECK-X86_64: ),
-// CHECK-X86_64: ('_relocations', [
-// CHECK-X86_64: ])
-// CHECK-X86_64: ])
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Load Command 1
-// CHECK-X86_64: (('command', 2)
-// CHECK-X86_64: ('size', 24)
-// CHECK-X86_64: ('symoff', 292)
-// CHECK-X86_64: ('nsyms', 9)
-// CHECK-X86_64: ('stroff', 436)
-// CHECK-X86_64: ('strsize', 140)
-// CHECK-X86_64: ('_string_data', '\x00sym_local_C\x00sym_globl_undef_C\x00sym_globl_def_C\x00sym_local_B\x00sym_globl_undef_B\x00sym_globl_def_B\x00sym_local_A\x00sym_globl_undef_A\x00sym_globl_def_A\x00\x00')
-// CHECK-X86_64: ('_symbols', [
-// CHECK-X86_64: # Symbol 0
-// CHECK-X86_64: (('n_strx', 47)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 1)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_local_B')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 1
-// CHECK-X86_64: (('n_strx', 93)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 1)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_local_A')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 2
-// CHECK-X86_64: (('n_strx', 1)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 1)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_local_C')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 3
-// CHECK-X86_64: (('n_strx', 123)
-// CHECK-X86_64: ('n_type', 0xf)
-// CHECK-X86_64: ('n_sect', 1)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_globl_def_A')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 4
-// CHECK-X86_64: (('n_strx', 77)
-// CHECK-X86_64: ('n_type', 0xf)
-// CHECK-X86_64: ('n_sect', 1)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_globl_def_B')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 5
-// CHECK-X86_64: (('n_strx', 31)
-// CHECK-X86_64: ('n_type', 0xf)
-// CHECK-X86_64: ('n_sect', 1)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_globl_def_C')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 6
-// CHECK-X86_64: (('n_strx', 105)
-// CHECK-X86_64: ('n_type', 0x1)
-// CHECK-X86_64: ('n_sect', 0)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_globl_undef_A')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 7
-// CHECK-X86_64: (('n_strx', 59)
-// CHECK-X86_64: ('n_type', 0x1)
-// CHECK-X86_64: ('n_sect', 0)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_globl_undef_B')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 8
-// CHECK-X86_64: (('n_strx', 13)
-// CHECK-X86_64: ('n_type', 0x1)
-// CHECK-X86_64: ('n_sect', 0)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'sym_globl_undef_C')
-// CHECK-X86_64: ),
-// CHECK-X86_64: ])
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Load Command 2
-// CHECK-X86_64: (('command', 11)
-// CHECK-X86_64: ('size', 80)
-// CHECK-X86_64: ('ilocalsym', 0)
-// CHECK-X86_64: ('nlocalsym', 3)
-// CHECK-X86_64: ('iextdefsym', 3)
-// CHECK-X86_64: ('nextdefsym', 3)
-// CHECK-X86_64: ('iundefsym', 6)
-// CHECK-X86_64: ('nundefsym', 3)
-// CHECK-X86_64: ('tocoff', 0)
-// CHECK-X86_64: ('ntoc', 0)
-// CHECK-X86_64: ('modtaboff', 0)
-// CHECK-X86_64: ('nmodtab', 0)
-// CHECK-X86_64: ('extrefsymoff', 0)
-// CHECK-X86_64: ('nextrefsyms', 0)
-// CHECK-X86_64: ('indirectsymoff', 0)
-// CHECK-X86_64: ('nindirectsyms', 0)
-// CHECK-X86_64: ('extreloff', 0)
-// CHECK-X86_64: ('nextrel', 0)
-// CHECK-X86_64: ('locreloff', 0)
-// CHECK-X86_64: ('nlocrel', 0)
-// CHECK-X86_64: ('_indirect_symbols', [
-// CHECK-X86_64: ])
-// CHECK-X86_64: ),
-// CHECK-X86_64: ])
+// CHECK-X86_64: File: <stdin>
+// CHECK-X86_64: Format: Mach-O 64-bit x86-64
+// CHECK-X86_64: Arch: x86_64
+// CHECK-X86_64: AddressSize: 64bit
+// CHECK-X86_64: MachHeader {
+// CHECK-X86_64: Magic: Magic64 (0xFEEDFACF)
+// CHECK-X86_64: CpuType: X86-64 (0x1000007)
+// CHECK-X86_64: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK-X86_64: FileType: Relocatable (0x1)
+// CHECK-X86_64: NumOfLoadCommands: 4
+// CHECK-X86_64: SizeOfLoadCommands: 272
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Reserved: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Sections [
+// CHECK-X86_64: Section {
+// CHECK-X86_64: Index: 0
+// CHECK-X86_64: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_64: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_64: Address: 0x0
+// CHECK-X86_64: Size: 0x4
+// CHECK-X86_64: Offset: 304
+// CHECK-X86_64: Alignment: 0
+// CHECK-X86_64: RelocationOffset: 0x0
+// CHECK-X86_64: RelocationCount: 0
+// CHECK-X86_64: Type: 0x0
+// CHECK-X86_64: Attributes [ (0x800000)
+// CHECK-X86_64: PureInstructions (0x800000)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Reserved1: 0x0
+// CHECK-X86_64: Reserved2: 0x0
+// CHECK-X86_64: Reserved3: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: ]
+// CHECK-X86_64: Relocations [
+// CHECK-X86_64: ]
+// CHECK-X86_64: Symbols [
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_local_B (47)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __text (0x1)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_local_A (93)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __text (0x1)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_local_C (1)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __text (0x1)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_globl_def_A (123)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __text (0x1)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_globl_def_B (77)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __text (0x1)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_globl_def_C (31)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __text (0x1)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_globl_undef_A (105)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Undef (0x0)
+// CHECK-X86_64: Section: (0x0)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_globl_undef_B (59)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Undef (0x0)
+// CHECK-X86_64: Section: (0x0)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: sym_globl_undef_C (13)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Undef (0x0)
+// CHECK-X86_64: Section: (0x0)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: ]
+// CHECK-X86_64: Indirect Symbols {
+// CHECK-X86_64: Number: 0
+// CHECK-X86_64: Symbols [
+// CHECK-X86_64: ]
+// CHECK-X86_64: }
+// CHECK-X86_64: Segment {
+// CHECK-X86_64: Cmd: LC_SEGMENT_64
+// CHECK-X86_64: Name:
+// CHECK-X86_64: Size: 152
+// CHECK-X86_64: vmaddr: 0x0
+// CHECK-X86_64: vmsize: 0x4
+// CHECK-X86_64: fileoff: 304
+// CHECK-X86_64: filesize: 4
+// CHECK-X86_64: maxprot: rwx
+// CHECK-X86_64: initprot: rwx
+// CHECK-X86_64: nsects: 1
+// CHECK-X86_64: flags: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Dysymtab {
+// CHECK-X86_64: ilocalsym: 0
+// CHECK-X86_64: nlocalsym: 3
+// CHECK-X86_64: iextdefsym: 3
+// CHECK-X86_64: nextdefsym: 3
+// CHECK-X86_64: iundefsym: 6
+// CHECK-X86_64: nundefsym: 3
+// CHECK-X86_64: tocoff: 0
+// CHECK-X86_64: ntoc: 0
+// CHECK-X86_64: modtaboff: 0
+// CHECK-X86_64: nmodtab: 0
+// CHECK-X86_64: extrefsymoff: 0
+// CHECK-X86_64: nextrefsyms: 0
+// CHECK-X86_64: indirectsymoff: 0
+// CHECK-X86_64: nindirectsyms: 0
+// CHECK-X86_64: extreloff: 0
+// CHECK-X86_64: nextrel: 0
+// CHECK-X86_64: locreloff: 0
+// CHECK-X86_64: nlocrel: 0
+// CHECK-X86_64: }
diff --git a/test/MC/MachO/tbss.s b/test/MC/MachO/tbss.s
index 1c23aa548d760..a257729092685 100644
--- a/test/MC/MachO/tbss.s
+++ b/test/MC/MachO/tbss.s
@@ -1,114 +1,122 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.tbss _a$tlv$init, 4
.tbss _b$tlv$init, 4, 3
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 336)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 232)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 12)
-// CHECK: ('file_offset', 368)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__thread_bss\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 12)
-// CHECK: ('offset', 0)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x12)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', 'cffaedfe 07000001 03000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 368)
-// CHECK: ('nsyms', 2)
-// CHECK: ('stroff', 400)
-// CHECK: ('strsize', 28)
-// CHECK: ('_string_data', '\x00_b$tlv$init\x00_a$tlv$init\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 13)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_a$tlv$init')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', '_b$tlv$init')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 2)
-// CHECK: ('iextdefsym', 2)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 2)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 3
+// CHECK: SizeOfLoadCommands: 336
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 368
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __thread_bss (5F 5F 74 68 72 65 61 64 5F 62 73 73 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0xC
+// CHECK: Offset: 0
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x12
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: CFFAEDFE 07000001 03000000 |............|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _a$tlv$init (13)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _b$tlv$init (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0xC
+// CHECK: fileoff: 368
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 2
+// CHECK: iextdefsym: 2
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 2
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/tdata.s b/test/MC/MachO/tdata.s
index 4829ca73a519b..855ce54c0abe7 100644
--- a/test/MC/MachO/tdata.s
+++ b/test/MC/MachO/tdata.s
@@ -1,106 +1,113 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.tdata
_a$tlv$init:
.long 4
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 336)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 232)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 4)
-// CHECK: ('file_offset', 368)
-// CHECK: ('file_size', 4)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__thread_data\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 4)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x11)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '04000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 372)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 388)
-// CHECK: ('strsize', 16)
-// CHECK: ('_string_data', '\x00_a$tlv$init\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_a$tlv$init')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 3
+// CHECK: SizeOfLoadCommands: 336
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 368
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __thread_data (5F 5F 74 68 72 65 61 64 5F 64 61 74 61 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x4
+// CHECK: Offset: 368
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x11
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 04000000 |....|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _a$tlv$init (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x4
+// CHECK: fileoff: 368
+// CHECK: filesize: 4
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/temp-labels.s b/test/MC/MachO/temp-labels.s
index ac0f6203aef1b..12dbae5531a6e 100644
--- a/test/MC/MachO/temp-labels.s
+++ b/test/MC/MachO/temp-labels.s
@@ -1,33 +1,27 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -save-temp-labels -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -save-temp-labels -o - | llvm-readobj -t | FileCheck %s
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 296)
-// CHECK: ('nsyms', 2)
-// CHECK: ('stroff', 328)
-// CHECK: ('strsize', 8)
-// CHECK: ('_string_data', '\x00_f0\x00L0\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_f0')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 5)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', 'L0')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
_f0:
.long 0
L0:
.long 0
+
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _f0 (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: L0 (5)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/thread_init_func.s b/test/MC/MachO/thread_init_func.s
index d3ead83fd2559..912d7824140f2 100644
--- a/test/MC/MachO/thread_init_func.s
+++ b/test/MC/MachO/thread_init_func.s
@@ -1,63 +1,77 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -macho-segment | FileCheck %s
.thread_init_func
.quad 0
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 232)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 232)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 8)
-// CHECK: ('file_offset', 264)
-// CHECK: ('file_size', 8)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 264)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__thread_init\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 8)
-// CHECK: ('offset', 264)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x15)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '00000000 00000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 1
+// CHECK: SizeOfLoadCommands: 232
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 264
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __thread_init (5F 5F 74 68 72 65 61 64 5F 69 6E 69 74 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x8
+// CHECK: Offset: 264
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x15
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x8
+// CHECK: fileoff: 264
+// CHECK: filesize: 8
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
diff --git a/test/MC/MachO/tls.s b/test/MC/MachO/tls.s
index 33e23a9c42769..438c7f04c8ed9 100644
--- a/test/MC/MachO/tls.s
+++ b/test/MC/MachO/tls.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.section __TEXT,__text,regular,pure_instructions
.section __DATA,__thread_data,thread_local_regular
@@ -45,226 +45,246 @@ _b:
.subsections_via_symbols
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 496)
-// CHECK: ('flag', 8192)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 392)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 112)
-// CHECK: ('file_offset', 528)
-// CHECK: ('file_size', 104)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 4)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 528)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__thread_data\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 8)
-// CHECK: ('offset', 528)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x11)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '04000000 05000000')
-// CHECK: # Section 2
-// CHECK: (('section_name', '__thread_vars\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 8)
-// CHECK: ('size', 96)
-// CHECK: ('offset', 536)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 632)
-// CHECK: ('num_reloc', 8)
-// CHECK: ('flags', 0x13)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x58),
-// CHECK: ('word-1', 0xe000001)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0x48),
-// CHECK: ('word-1', 0xe000008)),
-// CHECK: # Relocation 2
-// CHECK: (('word-0', 0x40),
-// CHECK: ('word-1', 0xe000000)),
-// CHECK: # Relocation 3
-// CHECK: (('word-0', 0x30),
-// CHECK: ('word-1', 0xe000008)),
-// CHECK: # Relocation 4
-// CHECK: (('word-0', 0x28),
-// CHECK: ('word-1', 0xe000007)),
-// CHECK: # Relocation 5
-// CHECK: (('word-0', 0x18),
-// CHECK: ('word-1', 0xe000008)),
-// CHECK: # Relocation 6
-// CHECK: (('word-0', 0x10),
-// CHECK: ('word-1', 0xe000005)),
-// CHECK: # Relocation 7
-// CHECK: (('word-0', 0x0),
-// CHECK: ('word-1', 0xe000008)),
-// CHECK: ])
-// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
-// CHECK: # Section 3
-// CHECK: (('section_name', '__thread_bss\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 104)
-// CHECK: ('size', 8)
-// CHECK: ('offset', 0)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x12)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', 'cffaedfe 07000001')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 696)
-// CHECK: ('nsyms', 9)
-// CHECK: ('stroff', 840)
-// CHECK: ('strsize', 80)
-// CHECK: ('_string_data', '\x00_d$tlv$init\x00_c$tlv$init\x00_b$tlv$init\x00_a$tlv$init\x00___tlv_bootstrap\x00_d\x00_c\x00_b\x00_a\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 37)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 4)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 104)
-// CHECK: ('_string', '_a$tlv$init')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 25)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 4)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 108)
-// CHECK: ('_string', '_b$tlv$init')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 75)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 56)
-// CHECK: ('_string', '_a')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 72)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 80)
-// CHECK: ('_string', '_b')
-// CHECK: ),
-// CHECK: # Symbol 4
-// CHECK: (('n_strx', 69)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', '_c')
-// CHECK: ),
-// CHECK: # Symbol 5
-// CHECK: (('n_strx', 13)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_c$tlv$init')
-// CHECK: ),
-// CHECK: # Symbol 6
-// CHECK: (('n_strx', 66)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 32)
-// CHECK: ('_string', '_d')
-// CHECK: ),
-// CHECK: # Symbol 7
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', '_d$tlv$init')
-// CHECK: ),
-// CHECK: # Symbol 8
-// CHECK: (('n_strx', 49)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '___tlv_bootstrap')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 2)
-// CHECK: ('iextdefsym', 2)
-// CHECK: ('nextdefsym', 6)
-// CHECK: ('iundefsym', 8)
-// CHECK: ('nundefsym', 1)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 3
+// CHECK: SizeOfLoadCommands: 496
+// CHECK: Flags [ (0x2000)
+// CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 528
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __thread_data (5F 5F 74 68 72 65 61 64 5F 64 61 74 61 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x8
+// CHECK: Offset: 528
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x11
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 04000000 05000000 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __thread_vars (5F 5F 74 68 72 65 61 64 5F 76 61 72 73 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x8
+// CHECK: Size: 0x60
+// CHECK: Offset: 536
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x278
+// CHECK: RelocationCount: 8
+// CHECK: Type: 0x13
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0010: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0020: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0030: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0040: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0050: 00000000 00000000 00000000 00000000 |................|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 3
+// CHECK: Name: __thread_bss (5F 5F 74 68 72 65 61 64 5F 62 73 73 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x68
+// CHECK: Size: 0x8
+// CHECK: Offset: 0
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x12
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: CFFAEDFE 07000001 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __thread_vars {
+// CHECK: 0x58 0 3 1 X86_64_RELOC_UNSIGNED 0 _b$tlv$init
+// CHECK: 0x48 0 3 1 X86_64_RELOC_UNSIGNED 0 ___tlv_bootstrap
+// CHECK: 0x40 0 3 1 X86_64_RELOC_UNSIGNED 0 _a$tlv$init
+// CHECK: 0x30 0 3 1 X86_64_RELOC_UNSIGNED 0 ___tlv_bootstrap
+// CHECK: 0x28 0 3 1 X86_64_RELOC_UNSIGNED 0 _d$tlv$init
+// CHECK: 0x18 0 3 1 X86_64_RELOC_UNSIGNED 0 ___tlv_bootstrap
+// CHECK: 0x10 0 3 1 X86_64_RELOC_UNSIGNED 0 _c$tlv$init
+// CHECK: 0x0 0 3 1 X86_64_RELOC_UNSIGNED 0 ___tlv_bootstrap
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _a$tlv$init (37)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_bss (0x4)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x68
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _b$tlv$init (25)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_bss (0x4)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x6C
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _a (75)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_vars (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x38
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _b (72)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_vars (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x50
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _c (69)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_vars (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _c$tlv$init (13)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _d (66)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_vars (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x20
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _d$tlv$init (1)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: ___tlv_bootstrap (49)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 392
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x70
+// CHECK: fileoff: 528
+// CHECK: filesize: 104
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 4
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 2
+// CHECK: iextdefsym: 2
+// CHECK: nextdefsym: 6
+// CHECK: iundefsym: 8
+// CHECK: nundefsym: 1
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/tlv-bss.ll b/test/MC/MachO/tlv-bss.ll
index 3dbf4b07e16e7..9a6ea20266fc6 100644
--- a/test/MC/MachO/tlv-bss.ll
+++ b/test/MC/MachO/tlv-bss.ll
@@ -1,11 +1,16 @@
-; RUN: llc -O0 -mtriple=x86_64-apple-darwin12 -filetype=obj -o - %s | macho-dump | FileCheck %s
+; RUN: llc -O0 -mtriple=x86_64-apple-darwin12 -filetype=obj -o - %s | llvm-readobj -s | FileCheck %s
; Test that we emit weak_odr thread_locals correctly into the thread_bss section
; PR15972
-; CHECK: __thread_bss
-; CHECK: 'size', 8
-; CHECK: 'alignment', 3
-; CHECK: __thread_vars
+; CHECK: Section {
+; CHECK: Index: 1
+; CHECK: Name: __thread_bss (5F 5F 74 68 72 65 61 64 5F 62 73 73 00 00 00 00)
+; CHECK: Size: 0x8
+; CHECK: Alignment: 3
+; CHECK: }
+; CHECK: Section {
+; CHECK: Index: 2
+; CHECK: Name: __thread_vars (5F 5F 74 68 72 65 61 64 5F 76 61 72 73 00 00 00)
; Generated from this C++ source
; template<class T>
diff --git a/test/MC/MachO/tlv-reloc.s b/test/MC/MachO/tlv-reloc.s
index 80e0565c59b75..ca6873478dce7 100644
--- a/test/MC/MachO/tlv-reloc.s
+++ b/test/MC/MachO/tlv-reloc.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.tdata
_a$tlv$init:
@@ -21,154 +21,171 @@ _foo:
call *(%rdi) # returns &a in %rax
ret
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 416)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 312)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 38)
-// CHECK: ('file_offset', 448)
-// CHECK: ('file_size', 38)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 3)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 10)
-// CHECK: ('offset', 448)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 488)
-// CHECK: ('num_reloc', 1)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x3),
-// CHECK: ('word-1', 0x9d000001)),
-// CHECK: ])
-// CHECK: ('_section_data', '488b3d00 000000ff 17c3')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__thread_data\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 10)
-// CHECK: ('size', 4)
-// CHECK: ('offset', 458)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x11)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '04000000')
-// CHECK: # Section 2
-// CHECK: (('section_name', '__thread_vars\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 14)
-// CHECK: ('size', 24)
-// CHECK: ('offset', 462)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 496)
-// CHECK: ('num_reloc', 2)
-// CHECK: ('flags', 0x13)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: # Relocation 0
-// CHECK: (('word-0', 0x10),
-// CHECK: ('word-1', 0xe000000)),
-// CHECK: # Relocation 1
-// CHECK: (('word-0', 0x0),
-// CHECK: ('word-1', 0xe000003)),
-// CHECK: ])
-// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 512)
-// CHECK: ('nsyms', 4)
-// CHECK: ('stroff', 576)
-// CHECK: ('strsize', 40)
-// CHECK: ('_string_data', '\x00_a$tlv$init\x00__tlv_bootstrap\x00_foo\x00_a\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 10)
-// CHECK: ('_string', '_a$tlv$init')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 34)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 14)
-// CHECK: ('_string', '_a')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 29)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_foo')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 13)
-// CHECK: ('n_type', 0x1)
-// CHECK: ('n_sect', 0)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '__tlv_bootstrap')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 2)
-// CHECK: ('iundefsym', 3)
-// CHECK: ('nundefsym', 1)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 3
+// CHECK: SizeOfLoadCommands: 416
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0xA
+// CHECK: Offset: 448
+// CHECK: Alignment: 4
+// CHECK: RelocationOffset: 0x1E8
+// CHECK: RelocationCount: 1
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 488B3D00 000000FF 17C3 |H.=.......|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __thread_data (5F 5F 74 68 72 65 61 64 5F 64 61 74 61 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0xA
+// CHECK: Size: 0x4
+// CHECK: Offset: 458
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x11
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 04000000 |....|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __thread_vars (5F 5F 74 68 72 65 61 64 5F 76 61 72 73 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0xE
+// CHECK: Size: 0x18
+// CHECK: Offset: 462
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x1F0
+// CHECK: RelocationCount: 2
+// CHECK: Type: 0x13
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0010: 00000000 00000000 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: Section __text {
+// CHECK: 0x3 1 2 1 X86_64_RELOC_TLV 0 _a
+// CHECK: }
+// CHECK: Section __thread_vars {
+// CHECK: 0x10 0 3 1 X86_64_RELOC_UNSIGNED 0 _a$tlv$init
+// CHECK: 0x0 0 3 1 X86_64_RELOC_UNSIGNED 0 __tlv_bootstrap
+// CHECK: }
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _a$tlv$init (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xA
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _a (34)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_vars (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xE
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _foo (29)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: __tlv_bootstrap (13)
+// CHECK: Extern
+// CHECK: Type: Undef (0x0)
+// CHECK: Section: (0x0)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 312
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x26
+// CHECK: fileoff: 448
+// CHECK: filesize: 38
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 3
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 2
+// CHECK: iundefsym: 3
+// CHECK: nundefsym: 1
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/tlv.s b/test/MC/MachO/tlv.s
index 0fe028e7d5016..57d74448aea5e 100644
--- a/test/MC/MachO/tlv.s
+++ b/test/MC/MachO/tlv.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.tlv
.globl _a
@@ -7,104 +7,113 @@ _a:
.quad 0
.quad 0
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 336)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 232)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 24)
-// CHECK: ('file_offset', 368)
-// CHECK: ('file_size', 24)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__thread_vars\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 24)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x13)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 392)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 408)
-// CHECK: ('strsize', 4)
-// CHECK: ('_string_data', '\x00_a\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_a')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 0)
-// CHECK: ('iextdefsym', 0)
-// CHECK: ('nextdefsym', 1)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 3
+// CHECK: SizeOfLoadCommands: 336
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 368
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __thread_vars (5F 5F 74 68 72 65 61 64 5F 76 61 72 73 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x18
+// CHECK: Offset: 368
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x13
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00000000 00000000 00000000 00000000 |................|
+// CHECK: 0010: 00000000 00000000 |........|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _a (1)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __thread_vars (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x18
+// CHECK: fileoff: 368
+// CHECK: filesize: 24
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 0
+// CHECK: iextdefsym: 0
+// CHECK: nextdefsym: 1
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/values.s b/test/MC/MachO/values.s
index 96115990636ea..0bdd0946770ff 100644
--- a/test/MC/MachO/values.s
+++ b/test/MC/MachO/values.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.long 0
text_def_int:
@@ -17,119 +17,132 @@ data_def_int:
data_def_ext:
.long 0
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 24)
-// CHECK: ('file_offset', 324)
-// CHECK: ('file_size', 24)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 12)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 1
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 12)
-// CHECK: ('size', 12)
-// CHECK: ('offset', 336)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 348)
-// CHECK: ('nsyms', 4)
-// CHECK: ('stroff', 396)
-// CHECK: ('strsize', 56)
-// CHECK: ('_string_data', '\x00text_def_ext\x00data_def_ext\x00text_def_int\x00data_def_int\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 27)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', 'text_def_int')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 40)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 16)
-// CHECK: ('_string', 'data_def_int')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 14)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 20)
-// CHECK: ('_string', 'data_def_ext')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', 'text_def_ext')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 2)
-// CHECK: ('iextdefsym', 2)
-// CHECK: ('nextdefsym', 2)
-// CHECK: ('iundefsym', 4)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0xC
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0xC
+// CHECK: Size: 0xC
+// CHECK: Offset: 352
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: text_def_int (27)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: data_def_int (40)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x10
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: data_def_ext (14)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x14
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: text_def_ext (1)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x18
+// CHECK: fileoff: 340
+// CHECK: filesize: 24
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 2
+// CHECK: iextdefsym: 2
+// CHECK: nextdefsym: 2
+// CHECK: iundefsym: 4
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/variable-exprs.s b/test/MC/MachO/variable-exprs.s
index ac781ef7f67d7..85f395fd3be8a 100644
--- a/test/MC/MachO/variable-exprs.s
+++ b/test/MC/MachO/variable-exprs.s
@@ -1,9 +1,9 @@
// RUN: llvm-mc -triple i386-apple-darwin10 %s -filetype=obj -o %t.o
-// RUN: macho-dump --dump-section-data < %t.o > %t.dump
+// RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.o > %t.dump
// RUN: FileCheck --check-prefix=CHECK-I386 < %t.dump %s
// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o %t.o
-// RUN: macho-dump --dump-section-data < %t.o > %t.dump
+// RUN: llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols < %t.o > %t.dump
// RUN: FileCheck --check-prefix=CHECK-X86_64 < %t.dump %s
.data
@@ -46,401 +46,417 @@ Lt0_b:
Lt0_x = Lt0_a - Lt0_b
.quad Lt0_x
-// CHECK-I386: ('cputype', 7)
-// CHECK-I386: ('cpusubtype', 3)
-// CHECK-I386: ('filetype', 1)
-// CHECK-I386: ('num_load_commands', 3)
-// CHECK-I386: ('load_commands_size', 296)
-// CHECK-I386: ('flag', 0)
-// CHECK-I386: ('load_commands', [
-// CHECK-I386: # Load Command 0
-// CHECK-I386: (('command', 1)
-// CHECK-I386: ('size', 192)
-// CHECK-I386: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-I386: ('vm_addr', 0)
-// CHECK-I386: ('vm_size', 57)
-// CHECK-I386: ('file_offset', 324)
-// CHECK-I386: ('file_size', 57)
-// CHECK-I386: ('maxprot', 7)
-// CHECK-I386: ('initprot', 7)
-// CHECK-I386: ('num_sections', 2)
-// CHECK-I386: ('flags', 0)
-// CHECK-I386: ('sections', [
-// CHECK-I386: # Section 0
-// CHECK-I386: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-I386: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-I386: ('address', 0)
-// CHECK-I386: ('size', 1)
-// CHECK-I386: ('offset', 324)
-// CHECK-I386: ('alignment', 0)
-// CHECK-I386: ('reloc_offset', 0)
-// CHECK-I386: ('num_reloc', 0)
-// CHECK-I386: ('flags', 0x80000400)
-// CHECK-I386: ('reserved1', 0)
-// CHECK-I386: ('reserved2', 0)
-// CHECK-I386: ),
-// CHECK-I386: ('_relocations', [
-// CHECK-I386: ])
-// CHECK-I386: ('_section_data', 'c3')
-// CHECK-I386: # Section 1
-// CHECK-I386: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-I386: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-I386: ('address', 1)
-// CHECK-I386: ('size', 56)
-// CHECK-I386: ('offset', 325)
-// CHECK-I386: ('alignment', 0)
-// CHECK-I386: ('reloc_offset', 384)
-// CHECK-I386: ('num_reloc', 9)
-// CHECK-I386: ('flags', 0x0)
-// CHECK-I386: ('reserved1', 0)
-// CHECK-I386: ('reserved2', 0)
-// CHECK-I386: ),
-// CHECK-I386: ('_relocations', [
-// CHECK-I386: # Relocation 0
-// CHECK-I386: (('word-0', 0x2c),
-// CHECK-I386: ('word-1', 0x4000002)),
-// CHECK-I386: # Relocation 1
-// CHECK-I386: (('word-0', 0x28),
-// CHECK-I386: ('word-1', 0x4000002)),
-// CHECK-I386: # Relocation 2
-// CHECK-I386: (('word-0', 0x24),
-// CHECK-I386: ('word-1', 0xc000009)),
-// CHECK-I386: # Relocation 3
-// CHECK-I386: (('word-0', 0x20),
-// CHECK-I386: ('word-1', 0xc000008)),
-// CHECK-I386: # Relocation 4
-// CHECK-I386: (('word-0', 0x1c),
-// CHECK-I386: ('word-1', 0xc000007)),
-// CHECK-I386: # Relocation 5
-// CHECK-I386: (('word-0', 0xa0000018),
-// CHECK-I386: ('word-1', 0x5)),
-// CHECK-I386: # Relocation 6
-// CHECK-I386: (('word-0', 0x14),
-// CHECK-I386: ('word-1', 0x4000002)),
-// CHECK-I386: # Relocation 7
-// CHECK-I386: (('word-0', 0x10),
-// CHECK-I386: ('word-1', 0x4000002)),
-// CHECK-I386: # Relocation 8
-// CHECK-I386: (('word-0', 0x8),
-// CHECK-I386: ('word-1', 0x4000002)),
-// CHECK-I386: ])
-// CHECK-I386: ('_section_data', '00000000 00000000 05000000 00000000 05000000 09000000 09000000 00000000 00000000 00000000 0d000000 0d000000 cfffffff ffffffff')
-// CHECK-I386: ])
-// CHECK-I386: ),
-// CHECK-I386: # Load Command 1
-// CHECK-I386: (('command', 2)
-// CHECK-I386: ('size', 24)
-// CHECK-I386: ('symoff', 456)
-// CHECK-I386: ('nsyms', 10)
-// CHECK-I386: ('stroff', 576)
-// CHECK-I386: ('strsize', 24)
-// CHECK-I386: ('_string_data', '\x00g\x00f\x00e\x00d\x00c\x00b\x00a\x00d3\x00d2\x00t0\x00')
-// CHECK-I386: ('_symbols', [
-// CHECK-I386: # Symbol 0
-// CHECK-I386: (('n_strx', 13)
-// CHECK-I386: ('n_type', 0xe)
-// CHECK-I386: ('n_sect', 2)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 5)
-// CHECK-I386: ('_string', 'a')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 1
-// CHECK-I386: (('n_strx', 11)
-// CHECK-I386: ('n_type', 0xe)
-// CHECK-I386: ('n_sect', 2)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 5)
-// CHECK-I386: ('_string', 'b')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 2
-// CHECK-I386: (('n_strx', 9)
-// CHECK-I386: ('n_type', 0xe)
-// CHECK-I386: ('n_sect', 2)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 9)
-// CHECK-I386: ('_string', 'c')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 3
-// CHECK-I386: (('n_strx', 5)
-// CHECK-I386: ('n_type', 0xe)
-// CHECK-I386: ('n_sect', 2)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 9)
-// CHECK-I386: ('_string', 'e')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 4
-// CHECK-I386: (('n_strx', 1)
-// CHECK-I386: ('n_type', 0xe)
-// CHECK-I386: ('n_sect', 2)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 13)
-// CHECK-I386: ('_string', 'g')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 5
-// CHECK-I386: (('n_strx', 3)
-// CHECK-I386: ('n_type', 0xe)
-// CHECK-I386: ('n_sect', 2)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 13)
-// CHECK-I386: ('_string', 'f')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 6
-// CHECK-I386: (('n_strx', 21)
-// CHECK-I386: ('n_type', 0xe)
-// CHECK-I386: ('n_sect', 1)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 0)
-// CHECK-I386: ('_string', 't0')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 7
-// CHECK-I386: (('n_strx', 7)
-// CHECK-I386: ('n_type', 0x1)
-// CHECK-I386: ('n_sect', 0)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 0)
-// CHECK-I386: ('_string', 'd')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 8
-// CHECK-I386: (('n_strx', 18)
-// CHECK-I386: ('n_type', 0xb)
-// CHECK-I386: ('n_sect', 0)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 7)
-// CHECK-I386: ('_string', 'd2')
-// CHECK-I386: ),
-// CHECK-I386: # Symbol 9
-// CHECK-I386: (('n_strx', 15)
-// CHECK-I386: ('n_type', 0x1)
-// CHECK-I386: ('n_sect', 0)
-// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 0)
-// CHECK-I386: ('_string', 'd3')
-// CHECK-I386: ),
-// CHECK-I386: ])
-// CHECK-I386: ),
-// CHECK-I386: # Load Command 2
-// CHECK-I386: (('command', 11)
-// CHECK-I386: ('size', 80)
-// CHECK-I386: ('ilocalsym', 0)
-// CHECK-I386: ('nlocalsym', 7)
-// CHECK-I386: ('iextdefsym', 7)
-// CHECK-I386: ('nextdefsym', 0)
-// CHECK-I386: ('iundefsym', 7)
-// CHECK-I386: ('nundefsym', 3)
-// CHECK-I386: ('tocoff', 0)
-// CHECK-I386: ('ntoc', 0)
-// CHECK-I386: ('modtaboff', 0)
-// CHECK-I386: ('nmodtab', 0)
-// CHECK-I386: ('extrefsymoff', 0)
-// CHECK-I386: ('nextrefsyms', 0)
-// CHECK-I386: ('indirectsymoff', 0)
-// CHECK-I386: ('nindirectsyms', 0)
-// CHECK-I386: ('extreloff', 0)
-// CHECK-I386: ('nextrel', 0)
-// CHECK-I386: ('locreloff', 0)
-// CHECK-I386: ('nlocrel', 0)
-// CHECK-I386: ('_indirect_symbols', [
-// CHECK-I386: ])
-// CHECK-I386: ),
-// CHECK-I386: ])
+// CHECK-I386: File: <stdin>
+// CHECK-I386: Format: Mach-O 32-bit i386
+// CHECK-I386: Arch: i386
+// CHECK-I386: AddressSize: 32bit
+// CHECK-I386: MachHeader {
+// CHECK-I386: Magic: Magic (0xFEEDFACE)
+// CHECK-I386: CpuType: X86 (0x7)
+// CHECK-I386: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK-I386: FileType: Relocatable (0x1)
+// CHECK-I386: NumOfLoadCommands: 4
+// CHECK-I386: SizeOfLoadCommands: 312
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: }
+// CHECK-I386: Sections [
+// CHECK-I386: Section {
+// CHECK-I386: Index: 0
+// CHECK-I386: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK-I386: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-I386: Address: 0x0
+// CHECK-I386: Size: 0x1
+// CHECK-I386: Offset: 340
+// CHECK-I386: Alignment: 0
+// CHECK-I386: RelocationOffset: 0x0
+// CHECK-I386: RelocationCount: 0
+// CHECK-I386: Type: 0x0
+// CHECK-I386: Attributes [ (0x800004)
+// CHECK-I386: PureInstructions (0x800000)
+// CHECK-I386: SomeInstructions (0x4)
+// CHECK-I386: ]
+// CHECK-I386: Reserved1: 0x0
+// CHECK-I386: Reserved2: 0x0
+// CHECK-I386: SectionData (
+// CHECK-I386: 0000: C3 |.|
+// CHECK-I386: )
+// CHECK-I386: }
+// CHECK-I386: Section {
+// CHECK-I386: Index: 1
+// CHECK-I386: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK-I386: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK-I386: Address: 0x1
+// CHECK-I386: Size: 0x38
+// CHECK-I386: Offset: 341
+// CHECK-I386: Alignment: 0
+// CHECK-I386: RelocationOffset: 0x190
+// CHECK-I386: RelocationCount: 9
+// CHECK-I386: Type: 0x0
+// CHECK-I386: Attributes [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Reserved1: 0x0
+// CHECK-I386: Reserved2: 0x0
+// CHECK-I386: SectionData (
+// CHECK-I386: 0000: 00000000 00000000 05000000 00000000 |................|
+// CHECK-I386: 0010: 05000000 09000000 09000000 00000000 |................|
+// CHECK-I386: 0020: 00000000 00000000 0D000000 0D000000 |................|
+// CHECK-I386: 0030: CFFFFFFF FFFFFFFF |........|
+// CHECK-I386: )
+// CHECK-I386: }
+// CHECK-I386: ]
+// CHECK-I386: Relocations [
+// CHECK-I386: Section __data {
+// CHECK-I386: 0x2C 0 2 0 GENERIC_RELOC_VANILLA 0 __data
+// CHECK-I386: 0x28 0 2 0 GENERIC_RELOC_VANILLA 0 __data
+// CHECK-I386: 0x24 0 2 1 GENERIC_RELOC_VANILLA 0 d3
+// CHECK-I386: 0x20 0 2 1 GENERIC_RELOC_VANILLA 0 d2
+// CHECK-I386: 0x1C 0 2 1 GENERIC_RELOC_VANILLA 0 d
+// CHECK-I386: 0x18 0 2 n/a GENERIC_RELOC_VANILLA 1 0x5
+// CHECK-I386: 0x14 0 2 0 GENERIC_RELOC_VANILLA 0 __data
+// CHECK-I386: 0x10 0 2 0 GENERIC_RELOC_VANILLA 0 __data
+// CHECK-I386: 0x8 0 2 0 GENERIC_RELOC_VANILLA 0 __data
+// CHECK-I386: }
+// CHECK-I386: ]
+// CHECK-I386: Symbols [
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: a (13)
+// CHECK-I386: Type: Section (0xE)
+// CHECK-I386: Section: __data (0x2)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x5
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: b (11)
+// CHECK-I386: Type: Section (0xE)
+// CHECK-I386: Section: __data (0x2)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x5
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: c (9)
+// CHECK-I386: Type: Section (0xE)
+// CHECK-I386: Section: __data (0x2)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x9
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: e (5)
+// CHECK-I386: Type: Section (0xE)
+// CHECK-I386: Section: __data (0x2)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x9
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: g (1)
+// CHECK-I386: Type: Section (0xE)
+// CHECK-I386: Section: __data (0x2)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0xD
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: f (3)
+// CHECK-I386: Type: Section (0xE)
+// CHECK-I386: Section: __data (0x2)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0xD
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: t0 (21)
+// CHECK-I386: Type: Section (0xE)
+// CHECK-I386: Section: __text (0x1)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x0
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: d (7)
+// CHECK-I386: Extern
+// CHECK-I386: Type: Undef (0x0)
+// CHECK-I386: Section: (0x0)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x0
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: d2 (18)
+// CHECK-I386: Extern
+// CHECK-I386: Type: Indirect (0xA)
+// CHECK-I386: Section: (0x0)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x7
+// CHECK-I386: }
+// CHECK-I386: Symbol {
+// CHECK-I386: Name: d3 (15)
+// CHECK-I386: Extern
+// CHECK-I386: Type: Undef (0x0)
+// CHECK-I386: Section: (0x0)
+// CHECK-I386: RefType: UndefinedNonLazy (0x0)
+// CHECK-I386: Flags [ (0x0)
+// CHECK-I386: ]
+// CHECK-I386: Value: 0x0
+// CHECK-I386: }
+// CHECK-I386: ]
+// CHECK-I386: Indirect Symbols {
+// CHECK-I386: Number: 0
+// CHECK-I386: Symbols [
+// CHECK-I386: ]
+// CHECK-I386: }
+// CHECK-I386: Segment {
+// CHECK-I386: Cmd: LC_SEGMENT
+// CHECK-I386: Name:
+// CHECK-I386: Size: 192
+// CHECK-I386: vmaddr: 0x0
+// CHECK-I386: vmsize: 0x39
+// CHECK-I386: fileoff: 340
+// CHECK-I386: filesize: 57
+// CHECK-I386: maxprot: rwx
+// CHECK-I386: initprot: rwx
+// CHECK-I386: nsects: 2
+// CHECK-I386: flags: 0x0
+// CHECK-I386: }
+// CHECK-I386: Dysymtab {
+// CHECK-I386: ilocalsym: 0
+// CHECK-I386: nlocalsym: 7
+// CHECK-I386: iextdefsym: 7
+// CHECK-I386: nextdefsym: 0
+// CHECK-I386: iundefsym: 7
+// CHECK-I386: nundefsym: 3
+// CHECK-I386: tocoff: 0
+// CHECK-I386: ntoc: 0
+// CHECK-I386: modtaboff: 0
+// CHECK-I386: nmodtab: 0
+// CHECK-I386: extrefsymoff: 0
+// CHECK-I386: nextrefsyms: 0
+// CHECK-I386: indirectsymoff: 0
+// CHECK-I386: nindirectsyms: 0
+// CHECK-I386: extreloff: 0
+// CHECK-I386: nextrel: 0
+// CHECK-I386: locreloff: 0
+// CHECK-I386: nlocrel: 0
+// CHECK-I386: }
-// CHECK-X86_64: ('cputype', 16777223)
-// CHECK-X86_64: ('cpusubtype', 3)
-// CHECK-X86_64: ('filetype', 1)
-// CHECK-X86_64: ('num_load_commands', 3)
-// CHECK-X86_64: ('load_commands_size', 336)
-// CHECK-X86_64: ('flag', 0)
-// CHECK-X86_64: ('reserved', 0)
-// CHECK-X86_64: ('load_commands', [
-// CHECK-X86_64: # Load Command 0
-// CHECK-X86_64: (('command', 25)
-// CHECK-X86_64: ('size', 232)
-// CHECK-X86_64: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('vm_addr', 0)
-// CHECK-X86_64: ('vm_size', 57)
-// CHECK-X86_64: ('file_offset', 368)
-// CHECK-X86_64: ('file_size', 57)
-// CHECK-X86_64: ('maxprot', 7)
-// CHECK-X86_64: ('initprot', 7)
-// CHECK-X86_64: ('num_sections', 2)
-// CHECK-X86_64: ('flags', 0)
-// CHECK-X86_64: ('sections', [
-// CHECK-X86_64: # Section 0
-// CHECK-X86_64: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('address', 0)
-// CHECK-X86_64: ('size', 1)
-// CHECK-X86_64: ('offset', 368)
-// CHECK-X86_64: ('alignment', 0)
-// CHECK-X86_64: ('reloc_offset', 0)
-// CHECK-X86_64: ('num_reloc', 0)
-// CHECK-X86_64: ('flags', 0x80000400)
-// CHECK-X86_64: ('reserved1', 0)
-// CHECK-X86_64: ('reserved2', 0)
-// CHECK-X86_64: ('reserved3', 0)
-// CHECK-X86_64: ),
-// CHECK-X86_64: ('_relocations', [
-// CHECK-X86_64: ])
-// CHECK-X86_64: ('_section_data', 'c3')
-// CHECK-X86_64: # Section 1
-// CHECK-X86_64: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-X86_64: ('address', 1)
-// CHECK-X86_64: ('size', 56)
-// CHECK-X86_64: ('offset', 369)
-// CHECK-X86_64: ('alignment', 0)
-// CHECK-X86_64: ('reloc_offset', 428)
-// CHECK-X86_64: ('num_reloc', 9)
-// CHECK-X86_64: ('flags', 0x0)
-// CHECK-X86_64: ('reserved1', 0)
-// CHECK-X86_64: ('reserved2', 0)
-// CHECK-X86_64: ('reserved3', 0)
-// CHECK-X86_64: ),
-// CHECK-X86_64: ('_relocations', [
-// CHECK-X86_64: # Relocation 0
-// CHECK-X86_64: (('word-0', 0x2c),
-// CHECK-X86_64: ('word-1', 0xc000004)),
-// CHECK-X86_64: # Relocation 1
-// CHECK-X86_64: (('word-0', 0x28),
-// CHECK-X86_64: ('word-1', 0xc000005)),
-// CHECK-X86_64: # Relocation 2
-// CHECK-X86_64: (('word-0', 0x24),
-// CHECK-X86_64: ('word-1', 0xc000009)),
-// CHECK-X86_64: # Relocation 3
-// CHECK-X86_64: (('word-0', 0x20),
-// CHECK-X86_64: ('word-1', 0xc000008)),
-// CHECK-X86_64: # Relocation 4
-// CHECK-X86_64: (('word-0', 0x1c),
-// CHECK-X86_64: ('word-1', 0xc000007)),
-// CHECK-X86_64: # Relocation 5
-// CHECK-X86_64: (('word-0', 0x18),
-// CHECK-X86_64: ('word-1', 0xc000000)),
-// CHECK-X86_64: # Relocation 6
-// CHECK-X86_64: (('word-0', 0x14),
-// CHECK-X86_64: ('word-1', 0xc000003)),
-// CHECK-X86_64: # Relocation 7
-// CHECK-X86_64: (('word-0', 0x10),
-// CHECK-X86_64: ('word-1', 0xc000001)),
-// CHECK-X86_64: # Relocation 8
-// CHECK-X86_64: (('word-0', 0x8),
-// CHECK-X86_64: ('word-1', 0xc000001)),
-// CHECK-X86_64: ])
-// CHECK-X86_64: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 04000000 00000000 00000000 00000000 00000000 00000000 cfffffff ffffffff')
-// CHECK-X86_64: ])
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Load Command 1
-// CHECK-X86_64: (('command', 2)
-// CHECK-X86_64: ('size', 24)
-// CHECK-X86_64: ('symoff', 500)
-// CHECK-X86_64: ('nsyms', 10)
-// CHECK-X86_64: ('stroff', 660)
-// CHECK-X86_64: ('strsize', 24)
-// CHECK-X86_64: ('_string_data', '\x00g\x00f\x00e\x00d\x00c\x00b\x00a\x00d3\x00d2\x00t0\x00')
-// CHECK-X86_64: ('_symbols', [
-// CHECK-X86_64: # Symbol 0
-// CHECK-X86_64: (('n_strx', 13)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 2)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 5)
-// CHECK-X86_64: ('_string', 'a')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 1
-// CHECK-X86_64: (('n_strx', 11)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 2)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 5)
-// CHECK-X86_64: ('_string', 'b')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 2
-// CHECK-X86_64: (('n_strx', 9)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 2)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 9)
-// CHECK-X86_64: ('_string', 'c')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 3
-// CHECK-X86_64: (('n_strx', 5)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 2)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 9)
-// CHECK-X86_64: ('_string', 'e')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 4
-// CHECK-X86_64: (('n_strx', 1)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 2)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 13)
-// CHECK-X86_64: ('_string', 'g')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 5
-// CHECK-X86_64: (('n_strx', 3)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 2)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 13)
-// CHECK-X86_64: ('_string', 'f')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 6
-// CHECK-X86_64: (('n_strx', 21)
-// CHECK-X86_64: ('n_type', 0xe)
-// CHECK-X86_64: ('n_sect', 1)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 't0')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 7
-// CHECK-X86_64: (('n_strx', 7)
-// CHECK-X86_64: ('n_type', 0x1)
-// CHECK-X86_64: ('n_sect', 0)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'd')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 8
-// CHECK-X86_64: (('n_strx', 18)
-// CHECK-X86_64: ('n_type', 0xb)
-// CHECK-X86_64: ('n_sect', 0)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 7)
-// CHECK-X86_64: ('_string', 'd2')
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Symbol 9
-// CHECK-X86_64: (('n_strx', 15)
-// CHECK-X86_64: ('n_type', 0x1)
-// CHECK-X86_64: ('n_sect', 0)
-// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 0)
-// CHECK-X86_64: ('_string', 'd3')
-// CHECK-X86_64: ),
-// CHECK-X86_64: ])
-// CHECK-X86_64: ),
-// CHECK-X86_64: # Load Command 2
-// CHECK-X86_64: (('command', 11)
-// CHECK-X86_64: ('size', 80)
-// CHECK-X86_64: ('ilocalsym', 0)
-// CHECK-X86_64: ('nlocalsym', 7)
-// CHECK-X86_64: ('iextdefsym', 7)
-// CHECK-X86_64: ('nextdefsym', 0)
-// CHECK-X86_64: ('iundefsym', 7)
-// CHECK-X86_64: ('nundefsym', 3)
-// CHECK-X86_64: ('tocoff', 0)
-// CHECK-X86_64: ('ntoc', 0)
-// CHECK-X86_64: ('modtaboff', 0)
-// CHECK-X86_64: ('nmodtab', 0)
-// CHECK-X86_64: ('extrefsymoff', 0)
-// CHECK-X86_64: ('nextrefsyms', 0)
-// CHECK-X86_64: ('indirectsymoff', 0)
-// CHECK-X86_64: ('nindirectsyms', 0)
-// CHECK-X86_64: ('extreloff', 0)
-// CHECK-X86_64: ('nextrel', 0)
-// CHECK-X86_64: ('locreloff', 0)
-// CHECK-X86_64: ('nlocrel', 0)
-// CHECK-X86_64: ('_indirect_symbols', [
-// CHECK-X86_64: ])
-// CHECK-X86_64: ),
-// CHECK-X86_64: ])
+// CHECK-X86_64: File: <stdin>
+// CHECK-X86_64: Format: Mach-O 64-bit x86-64
+// CHECK-X86_64: Arch: x86_64
+// CHECK-X86_64: AddressSize: 64bit
+// CHECK-X86_64: MachHeader {
+// CHECK-X86_64: Magic: Magic64 (0xFEEDFACF)
+// CHECK-X86_64: CpuType: X86-64 (0x1000007)
+// CHECK-X86_64: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK-X86_64: FileType: Relocatable (0x1)
+// CHECK-X86_64: NumOfLoadCommands: 4
+// CHECK-X86_64: SizeOfLoadCommands: 352
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Reserved: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Sections [
+// CHECK-X86_64: Section {
+// CHECK-X86_64: Index: 0
+// CHECK-X86_64: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_64: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_64: Address: 0x0
+// CHECK-X86_64: Size: 0x1
+// CHECK-X86_64: Offset: 384
+// CHECK-X86_64: Alignment: 0
+// CHECK-X86_64: RelocationOffset: 0x0
+// CHECK-X86_64: RelocationCount: 0
+// CHECK-X86_64: Type: 0x0
+// CHECK-X86_64: Attributes [ (0x800004)
+// CHECK-X86_64: PureInstructions (0x800000)
+// CHECK-X86_64: SomeInstructions (0x4)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Reserved1: 0x0
+// CHECK-X86_64: Reserved2: 0x0
+// CHECK-X86_64: Reserved3: 0x0
+// CHECK-X86_64: SectionData (
+// CHECK-X86_64: 0000: C3 |.|
+// CHECK-X86_64: )
+// CHECK-X86_64: }
+// CHECK-X86_64: Section {
+// CHECK-X86_64: Index: 1
+// CHECK-X86_64: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_64: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK-X86_64: Address: 0x1
+// CHECK-X86_64: Size: 0x38
+// CHECK-X86_64: Offset: 385
+// CHECK-X86_64: Alignment: 0
+// CHECK-X86_64: RelocationOffset: 0x1BC
+// CHECK-X86_64: RelocationCount: 9
+// CHECK-X86_64: Type: 0x0
+// CHECK-X86_64: Attributes [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Reserved1: 0x0
+// CHECK-X86_64: Reserved2: 0x0
+// CHECK-X86_64: Reserved3: 0x0
+// CHECK-X86_64: SectionData (
+// CHECK-X86_64: 0000: 00000000 00000000 00000000 00000000 |................|
+// CHECK-X86_64: 0010: 00000000 00000000 04000000 00000000 |................|
+// CHECK-X86_64: 0020: 00000000 00000000 00000000 00000000 |................|
+// CHECK-X86_64: 0030: CFFFFFFF FFFFFFFF |........|
+// CHECK-X86_64: )
+// CHECK-X86_64: }
+// CHECK-X86_64: ]
+// CHECK-X86_64: Relocations [
+// CHECK-X86_64: Section __data {
+// CHECK-X86_64: 0x2C 0 2 1 X86_64_RELOC_UNSIGNED 0 g
+// CHECK-X86_64: 0x28 0 2 1 X86_64_RELOC_UNSIGNED 0 f
+// CHECK-X86_64: 0x24 0 2 1 X86_64_RELOC_UNSIGNED 0 d3
+// CHECK-X86_64: 0x20 0 2 1 X86_64_RELOC_UNSIGNED 0 d2
+// CHECK-X86_64: 0x1C 0 2 1 X86_64_RELOC_UNSIGNED 0 d
+// CHECK-X86_64: 0x18 0 2 1 X86_64_RELOC_UNSIGNED 0 a
+// CHECK-X86_64: 0x14 0 2 1 X86_64_RELOC_UNSIGNED 0 e
+// CHECK-X86_64: 0x10 0 2 1 X86_64_RELOC_UNSIGNED 0 b
+// CHECK-X86_64: 0x8 0 2 1 X86_64_RELOC_UNSIGNED 0 b
+// CHECK-X86_64: }
+// CHECK-X86_64: ]
+// CHECK-X86_64: Symbols [
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: a (13)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __data (0x2)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x5
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: b (11)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __data (0x2)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x5
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: c (9)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __data (0x2)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x9
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: e (5)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __data (0x2)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x9
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: g (1)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __data (0x2)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0xD
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: f (3)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __data (0x2)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0xD
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: t0 (21)
+// CHECK-X86_64: Type: Section (0xE)
+// CHECK-X86_64: Section: __text (0x1)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: d (7)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Undef (0x0)
+// CHECK-X86_64: Section: (0x0)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: d2 (18)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Indirect (0xA)
+// CHECK-X86_64: Section: (0x0)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x7
+// CHECK-X86_64: }
+// CHECK-X86_64: Symbol {
+// CHECK-X86_64: Name: d3 (15)
+// CHECK-X86_64: Extern
+// CHECK-X86_64: Type: Undef (0x0)
+// CHECK-X86_64: Section: (0x0)
+// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)
+// CHECK-X86_64: Flags [ (0x0)
+// CHECK-X86_64: ]
+// CHECK-X86_64: Value: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: ]
+// CHECK-X86_64: Indirect Symbols {
+// CHECK-X86_64: Number: 0
+// CHECK-X86_64: Symbols [
+// CHECK-X86_64: ]
+// CHECK-X86_64: }
+// CHECK-X86_64: Segment {
+// CHECK-X86_64: Cmd: LC_SEGMENT_64
+// CHECK-X86_64: Name:
+// CHECK-X86_64: Size: 232
+// CHECK-X86_64: vmaddr: 0x0
+// CHECK-X86_64: vmsize: 0x39
+// CHECK-X86_64: fileoff: 384
+// CHECK-X86_64: filesize: 57
+// CHECK-X86_64: maxprot: rwx
+// CHECK-X86_64: initprot: rwx
+// CHECK-X86_64: nsects: 2
+// CHECK-X86_64: flags: 0x0
+// CHECK-X86_64: }
+// CHECK-X86_64: Dysymtab {
+// CHECK-X86_64: ilocalsym: 0
+// CHECK-X86_64: nlocalsym: 7
+// CHECK-X86_64: iextdefsym: 7
+// CHECK-X86_64: nextdefsym: 0
+// CHECK-X86_64: iundefsym: 7
+// CHECK-X86_64: nundefsym: 3
+// CHECK-X86_64: tocoff: 0
+// CHECK-X86_64: ntoc: 0
+// CHECK-X86_64: modtaboff: 0
+// CHECK-X86_64: nmodtab: 0
+// CHECK-X86_64: extrefsymoff: 0
+// CHECK-X86_64: nextrefsyms: 0
+// CHECK-X86_64: indirectsymoff: 0
+// CHECK-X86_64: nindirectsyms: 0
+// CHECK-X86_64: extreloff: 0
+// CHECK-X86_64: nextrel: 0
+// CHECK-X86_64: locreloff: 0
+// CHECK-X86_64: nlocrel: 0
+// CHECK-X86_64: }
diff --git a/test/MC/MachO/weakdef.s b/test/MC/MachO/weakdef.s
index 494079df5004f..2043dc86f74bb 100644
--- a/test/MC/MachO/weakdef.s
+++ b/test/MC/MachO/weakdef.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
.section __DATA,__datacoal_nt,coalesced
.section __TEXT,__const_coal,coalesced
@@ -14,128 +14,142 @@ __ZTS3optIbE:
__ZTI3optIbE:
.long __ZTS3optIbE
-// CHECK: ('cputype', 7)
-// CHECK-NEXT: ('cpusubtype', 3)
-// CHECK-NEXT: ('filetype', 1)
-// CHECK-NEXT: ('num_load_commands', 3)
-// CHECK-NEXT: ('load_commands_size', 364)
-// CHECK-NEXT: ('flag', 0)
-// CHECK-NEXT: ('load_commands', [
-// CHECK-NEXT: # Load Command 0
-// CHECK-NEXT: (('command', 1)
-// CHECK-NEXT: ('size', 260)
-// CHECK-NEXT: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('vm_addr', 0)
-// CHECK-NEXT: ('vm_size', 4)
-// CHECK-NEXT: ('file_offset', 392)
-// CHECK-NEXT: ('file_size', 4)
-// CHECK-NEXT: ('maxprot', 7)
-// CHECK-NEXT: ('initprot', 7)
-// CHECK-NEXT: ('num_sections', 3)
-// CHECK-NEXT: ('flags', 0)
-// CHECK-NEXT: ('sections', [
-// CHECK-NEXT: # Section 0
-// CHECK-NEXT: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 0)
-// CHECK-NEXT: ('size', 0)
-// CHECK-NEXT: ('offset', 392)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 0)
-// CHECK-NEXT: ('num_reloc', 0)
-// CHECK-NEXT: ('flags', 0x80000000)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '')
-// CHECK-NEXT: # Section 1
-// CHECK-NEXT: (('section_name', '__datacoal_nt\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 0)
-// CHECK-NEXT: ('size', 4)
-// CHECK-NEXT: ('offset', 392)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 396)
-// CHECK-NEXT: ('num_reloc', 1)
-// CHECK-NEXT: ('flags', 0xb)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: # Relocation 0
-// CHECK-NEXT: (('word-0', 0x0),
-// CHECK-NEXT: ('word-1', 0xc000001)),
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '00000000')
-// CHECK-NEXT: # Section 2
-// CHECK-NEXT: (('section_name', '__const_coal\x00\x00\x00\x00')
-// CHECK-NEXT: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK-NEXT: ('address', 4)
-// CHECK-NEXT: ('size', 0)
-// CHECK-NEXT: ('offset', 396)
-// CHECK-NEXT: ('alignment', 0)
-// CHECK-NEXT: ('reloc_offset', 0)
-// CHECK-NEXT: ('num_reloc', 0)
-// CHECK-NEXT: ('flags', 0xb)
-// CHECK-NEXT: ('reserved1', 0)
-// CHECK-NEXT: ('reserved2', 0)
-// CHECK-NEXT: ),
-// CHECK-NEXT: ('_relocations', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ('_section_data', '')
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Load Command 1
-// CHECK-NEXT: (('command', 2)
-// CHECK-NEXT: ('size', 24)
-// CHECK-NEXT: ('symoff', 404)
-// CHECK-NEXT: ('nsyms', 2)
-// CHECK-NEXT: ('stroff', 428)
-// CHECK-NEXT: ('strsize', 28)
-// CHECK-NEXT: ('_string_data', '\x00__ZTS3optIbE\x00__ZTI3optIbE\x00\x00')
-// CHECK-NEXT: ('_symbols', [
-// CHECK-NEXT: # Symbol 0
-// CHECK-NEXT: (('n_strx', 14)
-// CHECK-NEXT: ('n_type', 0xf)
-// CHECK-NEXT: ('n_sect', 2)
-// CHECK-NEXT: ('n_desc', 128)
-// CHECK-NEXT: ('n_value', 0)
-// CHECK-NEXT: ('_string', '__ZTI3optIbE')
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Symbol 1
-// CHECK-NEXT: (('n_strx', 1)
-// CHECK-NEXT: ('n_type', 0xf)
-// CHECK-NEXT: ('n_sect', 3)
-// CHECK-NEXT: ('n_desc', 128)
-// CHECK-NEXT: ('n_value', 4)
-// CHECK-NEXT: ('_string', '__ZTS3optIbE')
-// CHECK-NEXT: ),
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: # Load Command 2
-// CHECK-NEXT: (('command', 11)
-// CHECK-NEXT: ('size', 80)
-// CHECK-NEXT: ('ilocalsym', 0)
-// CHECK-NEXT: ('nlocalsym', 0)
-// CHECK-NEXT: ('iextdefsym', 0)
-// CHECK-NEXT: ('nextdefsym', 2)
-// CHECK-NEXT: ('iundefsym', 2)
-// CHECK-NEXT: ('nundefsym', 0)
-// CHECK-NEXT: ('tocoff', 0)
-// CHECK-NEXT: ('ntoc', 0)
-// CHECK-NEXT: ('modtaboff', 0)
-// CHECK-NEXT: ('nmodtab', 0)
-// CHECK-NEXT: ('extrefsymoff', 0)
-// CHECK-NEXT: ('nextrefsyms', 0)
-// CHECK-NEXT: ('indirectsymoff', 0)
-// CHECK-NEXT: ('nindirectsyms', 0)
-// CHECK-NEXT: ('extreloff', 0)
-// CHECK-NEXT: ('nextrel', 0)
-// CHECK-NEXT: ('locreloff', 0)
-// CHECK-NEXT: ('nlocrel', 0)
-// CHECK-NEXT: ('_indirect_symbols', [
-// CHECK-NEXT: ])
-// CHECK-NEXT: ),
-// CHECK-NEXT: ])
+// CHECK: File: <stdin>
+// CHECK-NEXT: Format: Mach-O 32-bit i386
+// CHECK-NEXT: Arch: i386
+// CHECK-NEXT: AddressSize: 32bit
+// CHECK-NEXT: MachHeader {
+// CHECK-NEXT: Magic: Magic (0xFEEDFACE)
+// CHECK-NEXT: CpuType: X86 (0x7)
+// CHECK-NEXT: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK-NEXT: FileType: Relocatable (0x1)
+// CHECK-NEXT: NumOfLoadCommands: 4
+// CHECK-NEXT: SizeOfLoadCommands: 380
+// CHECK-NEXT: Flags [ (0x0)
+// CHECK-NEXT: ]
+// CHECK-NEXT: }
+// CHECK-NEXT: Sections [
+// CHECK-NEXT: Section {
+// CHECK-NEXT: Index: 0
+// CHECK-NEXT: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Address: 0x0
+// CHECK-NEXT: Size: 0x0
+// CHECK-NEXT: Offset: 408
+// CHECK-NEXT: Alignment: 0
+// CHECK-NEXT: RelocationOffset: 0x0
+// CHECK-NEXT: RelocationCount: 0
+// CHECK-NEXT: Type: 0x0
+// CHECK-NEXT: Attributes [ (0x800000)
+// CHECK-NEXT: PureInstructions (0x800000)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Reserved1: 0x0
+// CHECK-NEXT: Reserved2: 0x0
+// CHECK-NEXT: SectionData (
+// CHECK-NEXT: )
+// CHECK-NEXT: }
+// CHECK-NEXT: Section {
+// CHECK-NEXT: Index: 1
+// CHECK-NEXT: Name: __datacoal_nt (5F 5F 64 61 74 61 63 6F 61 6C 5F 6E 74 00 00 00)
+// CHECK-NEXT: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Address: 0x0
+// CHECK-NEXT: Size: 0x4
+// CHECK-NEXT: Offset: 408
+// CHECK-NEXT: Alignment: 0
+// CHECK-NEXT: RelocationOffset: 0x19C
+// CHECK-NEXT: RelocationCount: 1
+// CHECK-NEXT: Type: 0xB
+// CHECK-NEXT: Attributes [ (0x0)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Reserved1: 0x0
+// CHECK-NEXT: Reserved2: 0x0
+// CHECK-NEXT: SectionData (
+// CHECK-NEXT: 0000: 00000000 |....|
+// CHECK-NEXT: )
+// CHECK-NEXT: }
+// CHECK-NEXT: Section {
+// CHECK-NEXT: Index: 2
+// CHECK-NEXT: Name: __const_coal (5F 5F 63 6F 6E 73 74 5F 63 6F 61 6C 00 00 00 00)
+// CHECK-NEXT: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK-NEXT: Address: 0x4
+// CHECK-NEXT: Size: 0x0
+// CHECK-NEXT: Offset: 412
+// CHECK-NEXT: Alignment: 0
+// CHECK-NEXT: RelocationOffset: 0x0
+// CHECK-NEXT: RelocationCount: 0
+// CHECK-NEXT: Type: 0xB
+// CHECK-NEXT: Attributes [ (0x0)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Reserved1: 0x0
+// CHECK-NEXT: Reserved2: 0x0
+// CHECK-NEXT: SectionData (
+// CHECK-NEXT: )
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+// CHECK-NEXT: Relocations [
+// CHECK-NEXT: Section __datacoal_nt {
+// CHECK-NEXT: 0x0 0 2 1 GENERIC_RELOC_VANILLA 0 __ZTS3optIbE
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+// CHECK-NEXT: Symbols [
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: __ZTI3optIbE (14)
+// CHECK-NEXT: Extern
+// CHECK-NEXT: Type: Section (0xE)
+// CHECK-NEXT: Section: __datacoal_nt (0x2)
+// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
+// CHECK-NEXT: Flags [ (0x80)
+// CHECK-NEXT: WeakDef (0x80)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Value: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: __ZTS3optIbE (1)
+// CHECK-NEXT: Extern
+// CHECK-NEXT: Type: Section (0xE)
+// CHECK-NEXT: Section: __const_coal (0x3)
+// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
+// CHECK-NEXT: Flags [ (0x80)
+// CHECK-NEXT: WeakDef (0x80)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Value: 0x4
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+// CHECK-NEXT: Indirect Symbols {
+// CHECK-NEXT: Number: 0
+// CHECK-NEXT: Symbols [
+// CHECK-NEXT: ]
+// CHECK-NEXT: }
+// CHECK-NEXT: Segment {
+// CHECK-NEXT: Cmd: LC_SEGMENT
+// CHECK-NEXT: Name:
+// CHECK-NEXT: Size: 260
+// CHECK-NEXT: vmaddr: 0x0
+// CHECK-NEXT: vmsize: 0x4
+// CHECK-NEXT: fileoff: 408
+// CHECK-NEXT: filesize: 4
+// CHECK-NEXT: maxprot: rwx
+// CHECK-NEXT: initprot: rwx
+// CHECK-NEXT: nsects: 3
+// CHECK-NEXT: flags: 0x0
+// CHECK-NEXT: }
+// CHECK-NEXT: Dysymtab {
+// CHECK-NEXT: ilocalsym: 0
+// CHECK-NEXT: nlocalsym: 0
+// CHECK-NEXT: iextdefsym: 0
+// CHECK-NEXT: nextdefsym: 2
+// CHECK-NEXT: iundefsym: 2
+// CHECK-NEXT: nundefsym: 0
+// CHECK-NEXT: tocoff: 0
+// CHECK-NEXT: ntoc: 0
+// CHECK-NEXT: modtaboff: 0
+// CHECK-NEXT: nmodtab: 0
+// CHECK-NEXT: extrefsymoff: 0
+// CHECK-NEXT: nextrefsyms: 0
+// CHECK-NEXT: indirectsymoff: 0
+// CHECK-NEXT: nindirectsyms: 0
+// CHECK-NEXT: extreloff: 0
+// CHECK-NEXT: nextrel: 0
+// CHECK-NEXT: locreloff: 0
+// CHECK-NEXT: nlocrel: 0
+// CHECK-NEXT: }
diff --git a/test/MC/MachO/x86-data-in-code.ll b/test/MC/MachO/x86-data-in-code.ll
index c2e136fbeb086..b8d3a185cbd90 100644
--- a/test/MC/MachO/x86-data-in-code.ll
+++ b/test/MC/MachO/x86-data-in-code.ll
@@ -1,9 +1,8 @@
-; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=obj -o - %s | macho-dump | FileCheck %s
+; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=obj -o - %s | llvm-readobj -macho-data-in-code | FileCheck %s
; There should not be a data-in-code load command (type 0x29) for x86_64
; jump tables, even though they are in the text section.
-; CHECK: 'num_load_commands'
-; CHECK-NOT: (('command', 41)
+; CHECK-NOT: DataInCode {
define void @foo(i32* %ptr) nounwind ssp {
%tmp = load i32, i32* %ptr, align 4
diff --git a/test/MC/MachO/x86_32-optimal_nop.s b/test/MC/MachO/x86_32-optimal_nop.s
index 24751409bdb4b..01d8a1f6eb2a4 100644
--- a/test/MC/MachO/x86_32-optimal_nop.s
+++ b/test/MC/MachO/x86_32-optimal_nop.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck %s
# 1 byte nop test
.align 4, 0 # start with 16 byte alignment filled with zeros
@@ -157,101 +157,132 @@ f0:
.align 4, 0x90
.long 0
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 372)
-// CHECK: ('file_offset', 324)
-// CHECK: ('file_size', 372)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 337)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000400)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', 'c390c300 00000000 00000000 00000000 c3c36690 c3000000 00000000 00000000 c30f1f00 c3000000 00000000 00000000 c3c3c3c3 0f1f4000 c3000000 00000000 c3c3c30f 1f440000 c3000000 00000000 c3c3660f 1f440000 c3000000 00000000 c30f1f80 00000000 c3000000 00000000 c3c3c3c3 c3c3c3c3 c3000000 00000000 c3c3c3c3 c3c3c366 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c3c3 c3c3c366 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c3c3 c366662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c3c3 6666662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c3c366 6666662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3c36666 6666662e 0f1f8400 00000000 c3000000 00000000 00000000 00000000 c3666666 6666662e 0f1f8400 00000000 c3')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 352)
-// CHECK: ('size', 20)
-// CHECK: ('offset', 676)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '00909090 90909090 90909090 90909090 00000000')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 696)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 708)
-// CHECK: ('strsize', 4)
-// CHECK: ('_string_data', '\x00f0\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 352)
-// CHECK: ('_string', 'f0')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x151
+// CHECK: Offset: 340
+// CHECK: Alignment: 4
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800004)
+// CHECK: PureInstructions (0x800000)
+// CHECK: SomeInstructions (0x4)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: C390C300 00000000 00000000 00000000 |................|
+// CHECK: 0010: C3C36690 C3000000 00000000 00000000 |..f.............|
+// CHECK: 0020: C30F1F00 C3000000 00000000 00000000 |................|
+// CHECK: 0030: C3C3C3C3 0F1F4000 C3000000 00000000 |......@.........|
+// CHECK: 0040: C3C3C30F 1F440000 C3000000 00000000 |.....D..........|
+// CHECK: 0050: C3C3660F 1F440000 C3000000 00000000 |..f..D..........|
+// CHECK: 0060: C30F1F80 00000000 C3000000 00000000 |................|
+// CHECK: 0070: C3C3C3C3 C3C3C3C3 C3000000 00000000 |................|
+// CHECK: 0080: C3C3C3C3 C3C3C366 0F1F8400 00000000 |.......f........|
+// CHECK: 0090: C3000000 00000000 00000000 00000000 |................|
+// CHECK: 00A0: C3C3C3C3 C3C3C366 0F1F8400 00000000 |.......f........|
+// CHECK: 00B0: C3000000 00000000 00000000 00000000 |................|
+// CHECK: 00C0: C3C3C3C3 C366662E 0F1F8400 00000000 |.....ff.........|
+// CHECK: 00D0: C3000000 00000000 00000000 00000000 |................|
+// CHECK: 00E0: C3C3C3C3 6666662E 0F1F8400 00000000 |....fff.........|
+// CHECK: 00F0: C3000000 00000000 00000000 00000000 |................|
+// CHECK: 0100: C3C3C366 6666662E 0F1F8400 00000000 |...ffff.........|
+// CHECK: 0110: C3000000 00000000 00000000 00000000 |................|
+// CHECK: 0120: C3C36666 6666662E 0F1F8400 00000000 |..fffff.........|
+// CHECK: 0130: C3000000 00000000 00000000 00000000 |................|
+// CHECK: 0140: C3666666 6666662E 0F1F8400 00000000 |.ffffff.........|
+// CHECK: 0150: C3 |.|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x160
+// CHECK: Size: 0x14
+// CHECK: Offset: 692
+// CHECK: Alignment: 4
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00909090 90909090 90909090 90909090 |................|
+// CHECK: 0010: 00000000 |....|
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: f0 (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __const (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x160
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x174
+// CHECK: fileoff: 340
+// CHECK: filesize: 372
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/x86_32-scattered-reloc-fallback.s b/test/MC/MachO/x86_32-scattered-reloc-fallback.s
index 3de52b4228d0a..b2dc27b3e1cbe 100644
--- a/test/MC/MachO/x86_32-scattered-reloc-fallback.s
+++ b/test/MC/MachO/x86_32-scattered-reloc-fallback.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -s -sd | FileCheck %s
// rdar://15526046
@@ -24,4 +24,8 @@ _key64b_9:
// be relocated, in this case _key64b_9+4, value correct in the instruction.
// 01020f55 c7056475530100000000 movl $0x0, 0x1537564
-// CHECK: 90c70564 75530100 000000')
+// CHECK: SectionData (
+// CHECK: F75530: 90909090 90909090 90909090 90909090 |................|
+// CHECK: 1020F50: 90909090 90C70564 75530100 000000 |.......duS.....|
+// CHECK: 75530: 00000000 00000000 00000000 00000000 |................|
+// CHECK: )
diff --git a/test/MC/MachO/x86_32-sections.s b/test/MC/MachO/x86_32-sections.s
index 66ada2807ef90..a78ac17db1d46 100644
--- a/test/MC/MachO/x86_32-sections.s
+++ b/test/MC/MachO/x86_32-sections.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd --macho-segment | FileCheck %s
.text
.section __TEXT,__text,regular,pure_instructions
@@ -43,494 +43,700 @@
.section __TEXT,__picsymbolstub4,symbol_stubs,none,16
.subsections_via_symbols
-
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 2504)
-// CHECK: ('flag', 8192)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 2504)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 0)
-// CHECK: ('file_offset', 2532)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 36)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 1
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 2
-// CHECK: (('section_name', '__static_const\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 3
-// CHECK: (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x2)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 4
-// CHECK: (('section_name', '__literal4\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x3)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 5
-// CHECK: (('section_name', '__literal8\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x4)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 6
-// CHECK: (('section_name', '__literal16\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0xe)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 7
-// CHECK: (('section_name', '__constructor\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 8
-// CHECK: (('section_name', '__destructor\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 9
-// CHECK: (('section_name', '__symbol_stub\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000008)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 16)
-// CHECK: ),
-// CHECK: # Section 10
-// CHECK: (('section_name', '__picsymbol_stub')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000008)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 26)
-// CHECK: ),
-// CHECK: # Section 11
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 12
-// CHECK: (('section_name', '__static_data\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 13
-// CHECK: (('section_name', '__nl_symbol_ptr\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x6)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 14
-// CHECK: (('section_name', '__la_symbol_ptr\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x7)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 15
-// CHECK: (('section_name', '__dyld\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 16
-// CHECK: (('section_name', '__mod_init_func\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x9)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 17
-// CHECK: (('section_name', '__mod_term_func\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0xa)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 18
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 19
-// CHECK: (('section_name', '__class\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 20
-// CHECK: (('section_name', '__meta_class\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 21
-// CHECK: (('section_name', '__cat_cls_meth\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 22
-// CHECK: (('section_name', '__cat_inst_meth\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 23
-// CHECK: (('section_name', '__protocol\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 24
-// CHECK: (('section_name', '__string_object\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 25
-// CHECK: (('section_name', '__cls_meth\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 26
-// CHECK: (('section_name', '__inst_meth\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 27
-// CHECK: (('section_name', '__cls_refs\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000005)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 28
-// CHECK: (('section_name', '__message_refs\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000005)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 29
-// CHECK: (('section_name', '__symbols\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 30
-// CHECK: (('section_name', '__category\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 31
-// CHECK: (('section_name', '__class_vars\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 32
-// CHECK: (('section_name', '__instance_vars\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 33
-// CHECK: (('section_name', '__module_info\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: # Section 34
-// CHECK: (('section_name', '__selector_strs\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x2)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: # Section 35
-// CHECK: (('section_name', '__picsymbolstub4')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2532)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x8)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 16)
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 2
+// CHECK: SizeOfLoadCommands: 2520
+// CHECK: Flags [ (0x2000)
+// CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __static_const (5F 5F 73 74 61 74 69 63 5F 63 6F 6E 73 74 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 3
+// CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: ExtReloc (0x2)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 4
+// CHECK: Name: __literal4 (5F 5F 6C 69 74 65 72 61 6C 34 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x3
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 5
+// CHECK: Name: __literal8 (5F 5F 6C 69 74 65 72 61 6C 38 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: SomeInstructions (0x4)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 6
+// CHECK: Name: __literal16 (5F 5F 6C 69 74 65 72 61 6C 31 36 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 4
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0xE
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 7
+// CHECK: Name: __constructor (5F 5F 63 6F 6E 73 74 72 75 63 74 6F 72 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 8
+// CHECK: Name: __destructor (5F 5F 64 65 73 74 72 75 63 74 6F 72 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 9
+// CHECK: Name: __symbol_stub (5F 5F 73 79 6D 62 6F 6C 5F 73 74 75 62 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x8
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x10
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 10
+// CHECK: Name: __picsymbol_stub (5F 5F 70 69 63 73 79 6D 62 6F 6C 5F 73 74 75 62)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x8
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x1A
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 11
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 12
+// CHECK: Name: __static_data (5F 5F 73 74 61 74 69 63 5F 64 61 74 61 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 13
+// CHECK: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x6
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 14
+// CHECK: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x7
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 15
+// CHECK: Name: __dyld (5F 5F 64 79 6C 64 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 16
+// CHECK: Name: __mod_init_func (5F 5F 6D 6F 64 5F 69 6E 69 74 5F 66 75 6E 63 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x9
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 17
+// CHECK: Name: __mod_term_func (5F 5F 6D 6F 64 5F 74 65 72 6D 5F 66 75 6E 63 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0xA
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 18
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 19
+// CHECK: Name: __class (5F 5F 63 6C 61 73 73 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 20
+// CHECK: Name: __meta_class (5F 5F 6D 65 74 61 5F 63 6C 61 73 73 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 21
+// CHECK: Name: __cat_cls_meth (5F 5F 63 61 74 5F 63 6C 73 5F 6D 65 74 68 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 22
+// CHECK: Name: __cat_inst_meth (5F 5F 63 61 74 5F 69 6E 73 74 5F 6D 65 74 68 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 23
+// CHECK: Name: __protocol (5F 5F 70 72 6F 74 6F 63 6F 6C 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 24
+// CHECK: Name: __string_object (5F 5F 73 74 72 69 6E 67 5F 6F 62 6A 65 63 74 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 25
+// CHECK: Name: __cls_meth (5F 5F 63 6C 73 5F 6D 65 74 68 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 26
+// CHECK: Name: __inst_meth (5F 5F 69 6E 73 74 5F 6D 65 74 68 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 27
+// CHECK: Name: __cls_refs (5F 5F 63 6C 73 5F 72 65 66 73 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x5
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 28
+// CHECK: Name: __message_refs (5F 5F 6D 65 73 73 61 67 65 5F 72 65 66 73 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x5
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 29
+// CHECK: Name: __symbols (5F 5F 73 79 6D 62 6F 6C 73 00 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 30
+// CHECK: Name: __category (5F 5F 63 61 74 65 67 6F 72 79 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 31
+// CHECK: Name: __class_vars (5F 5F 63 6C 61 73 73 5F 76 61 72 73 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 32
+// CHECK: Name: __instance_vars (5F 5F 69 6E 73 74 61 6E 63 65 5F 76 61 72 73 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 33
+// CHECK: Name: __module_info (5F 5F 6D 6F 64 75 6C 65 5F 69 6E 66 6F 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 34
+// CHECK: Name: __selector_strs (5F 5F 73 65 6C 65 63 74 6F 72 5F 73 74 72 73 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: ExtReloc (0x2)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 35
+// CHECK: Name: __picsymbolstub4 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 34)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2548
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x8
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x10
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 2504
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x0
+// CHECK: fileoff: 2548
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 36
+// CHECK: flags: 0x0
+// CHECK: }
diff --git a/test/MC/MachO/x86_32-symbols.s b/test/MC/MachO/x86_32-symbols.s
index 95aa507305fd2..1a4ffafb745d0 100644
--- a/test/MC/MachO/x86_32-symbols.s
+++ b/test/MC/MachO/x86_32-symbols.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t --macho-segment --macho-dysymtab --macho-indirect-symbols | FileCheck %s
.text
L0:
@@ -121,921 +121,1087 @@ D38:
L39:
D39:
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 2608)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 2504)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 0)
-// CHECK: ('file_offset', 2636)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 36)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 2
-// CHECK: (('section_name', '__static_const\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 3
-// CHECK: (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x2)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 4
-// CHECK: (('section_name', '__literal4\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x3)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 5
-// CHECK: (('section_name', '__literal8\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x4)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 6
-// CHECK: (('section_name', '__literal16\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0xe)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 7
-// CHECK: (('section_name', '__constructor\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 8
-// CHECK: (('section_name', '__destructor\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 9
-// CHECK: (('section_name', '__symbol_stub\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000008)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 16)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 10
-// CHECK: (('section_name', '__picsymbol_stub')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000008)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 26)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 11
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 12
-// CHECK: (('section_name', '__static_data\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 13
-// CHECK: (('section_name', '__nl_symbol_ptr\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x6)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 14
-// CHECK: (('section_name', '__la_symbol_ptr\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x7)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 15
-// CHECK: (('section_name', '__dyld\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 16
-// CHECK: (('section_name', '__mod_init_func\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x9)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 17
-// CHECK: (('section_name', '__mod_term_func\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0xa)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 18
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 19
-// CHECK: (('section_name', '__class\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 20
-// CHECK: (('section_name', '__meta_class\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 21
-// CHECK: (('section_name', '__cat_cls_meth\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 22
-// CHECK: (('section_name', '__cat_inst_meth\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 23
-// CHECK: (('section_name', '__protocol\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 24
-// CHECK: (('section_name', '__string_object\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 25
-// CHECK: (('section_name', '__cls_meth\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 26
-// CHECK: (('section_name', '__inst_meth\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 27
-// CHECK: (('section_name', '__cls_refs\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000005)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 28
-// CHECK: (('section_name', '__message_refs\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000005)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 29
-// CHECK: (('section_name', '__symbols\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 30
-// CHECK: (('section_name', '__category\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 31
-// CHECK: (('section_name', '__class_vars\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 32
-// CHECK: (('section_name', '__instance_vars\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 33
-// CHECK: (('section_name', '__module_info\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 34
-// CHECK: (('section_name', '__selector_strs\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x2)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 35
-// CHECK: (('section_name', '__picsymbolstub4')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2636)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x8)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 16)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 2636)
-// CHECK: ('nsyms', 40)
-// CHECK: ('stroff', 3116)
-// CHECK: ('strsize', 152)
-// CHECK: ('_string_data', '\x00D9\x00D39\x00D29\x00D19\x00D8\x00D38\x00D28\x00D18\x00D7\x00D37\x00D27\x00D17\x00D6\x00D36\x00D26\x00D16\x00D5\x00D35\x00D25\x00D15\x00D4\x00D34\x00D24\x00D14\x00D3\x00D33\x00D23\x00D13\x00D2\x00D32\x00D22\x00D12\x00D1\x00D31\x00D21\x00D11\x00D0\x00D30\x00D20\x00D10\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 136)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D0')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 121)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 1)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D1')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 106)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D2')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 91)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 3)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D3')
-// CHECK: ),
-// CHECK: # Symbol 4
-// CHECK: (('n_strx', 76)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 4)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D4')
-// CHECK: ),
-// CHECK: # Symbol 5
-// CHECK: (('n_strx', 61)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 5)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D5')
-// CHECK: ),
-// CHECK: # Symbol 6
-// CHECK: (('n_strx', 46)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 6)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D6')
-// CHECK: ),
-// CHECK: # Symbol 7
-// CHECK: (('n_strx', 31)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 7)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D7')
-// CHECK: ),
-// CHECK: # Symbol 8
-// CHECK: (('n_strx', 16)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 8)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D8')
-// CHECK: ),
-// CHECK: # Symbol 9
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 9)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D9')
-// CHECK: ),
-// CHECK: # Symbol 10
-// CHECK: (('n_strx', 147)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 10)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D10')
-// CHECK: ),
-// CHECK: # Symbol 11
-// CHECK: (('n_strx', 132)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 11)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D11')
-// CHECK: ),
-// CHECK: # Symbol 12
-// CHECK: (('n_strx', 117)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 12)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D12')
-// CHECK: ),
-// CHECK: # Symbol 13
-// CHECK: (('n_strx', 102)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 13)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D13')
-// CHECK: ),
-// CHECK: # Symbol 14
-// CHECK: (('n_strx', 87)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 14)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D14')
-// CHECK: ),
-// CHECK: # Symbol 15
-// CHECK: (('n_strx', 72)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 15)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D15')
-// CHECK: ),
-// CHECK: # Symbol 16
-// CHECK: (('n_strx', 57)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 16)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D16')
-// CHECK: ),
-// CHECK: # Symbol 17
-// CHECK: (('n_strx', 42)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 17)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D17')
-// CHECK: ),
-// CHECK: # Symbol 18
-// CHECK: (('n_strx', 27)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 18)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D18')
-// CHECK: ),
-// CHECK: # Symbol 19
-// CHECK: (('n_strx', 12)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 19)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D19')
-// CHECK: ),
-// CHECK: # Symbol 20
-// CHECK: (('n_strx', 143)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 20)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D20')
-// CHECK: ),
-// CHECK: # Symbol 21
-// CHECK: (('n_strx', 128)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 21)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D21')
-// CHECK: ),
-// CHECK: # Symbol 22
-// CHECK: (('n_strx', 113)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 22)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D22')
-// CHECK: ),
-// CHECK: # Symbol 23
-// CHECK: (('n_strx', 98)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 23)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D23')
-// CHECK: ),
-// CHECK: # Symbol 24
-// CHECK: (('n_strx', 83)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 24)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D24')
-// CHECK: ),
-// CHECK: # Symbol 25
-// CHECK: (('n_strx', 68)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 25)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D25')
-// CHECK: ),
-// CHECK: # Symbol 26
-// CHECK: (('n_strx', 53)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 26)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D26')
-// CHECK: ),
-// CHECK: # Symbol 27
-// CHECK: (('n_strx', 38)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 27)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D27')
-// CHECK: ),
-// CHECK: # Symbol 28
-// CHECK: (('n_strx', 23)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 28)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D28')
-// CHECK: ),
-// CHECK: # Symbol 29
-// CHECK: (('n_strx', 8)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 29)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D29')
-// CHECK: ),
-// CHECK: # Symbol 30
-// CHECK: (('n_strx', 139)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 30)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D30')
-// CHECK: ),
-// CHECK: # Symbol 31
-// CHECK: (('n_strx', 124)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 31)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D31')
-// CHECK: ),
-// CHECK: # Symbol 32
-// CHECK: (('n_strx', 109)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 32)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D32')
-// CHECK: ),
-// CHECK: # Symbol 33
-// CHECK: (('n_strx', 94)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 33)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D33')
-// CHECK: ),
-// CHECK: # Symbol 34
-// CHECK: (('n_strx', 79)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 34)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D34')
-// CHECK: ),
-// CHECK: # Symbol 35
-// CHECK: (('n_strx', 64)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 4)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D35')
-// CHECK: ),
-// CHECK: # Symbol 36
-// CHECK: (('n_strx', 49)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 4)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D36')
-// CHECK: ),
-// CHECK: # Symbol 37
-// CHECK: (('n_strx', 34)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 4)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D37')
-// CHECK: ),
-// CHECK: # Symbol 38
-// CHECK: (('n_strx', 19)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 35)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D38')
-// CHECK: ),
-// CHECK: # Symbol 39
-// CHECK: (('n_strx', 4)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 36)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'D39')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 40)
-// CHECK: ('iextdefsym', 40)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 40)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 2624
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __static_const (5F 5F 73 74 61 74 69 63 5F 63 6F 6E 73 74 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 3
+// CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: ExtReloc (0x2)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 4
+// CHECK: Name: __literal4 (5F 5F 6C 69 74 65 72 61 6C 34 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x3
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 5
+// CHECK: Name: __literal8 (5F 5F 6C 69 74 65 72 61 6C 38 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: SomeInstructions (0x4)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 6
+// CHECK: Name: __literal16 (5F 5F 6C 69 74 65 72 61 6C 31 36 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 4
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0xE
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 7
+// CHECK: Name: __constructor (5F 5F 63 6F 6E 73 74 72 75 63 74 6F 72 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 8
+// CHECK: Name: __destructor (5F 5F 64 65 73 74 72 75 63 74 6F 72 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 9
+// CHECK: Name: __symbol_stub (5F 5F 73 79 6D 62 6F 6C 5F 73 74 75 62 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x8
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x10
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 10
+// CHECK: Name: __picsymbol_stub (5F 5F 70 69 63 73 79 6D 62 6F 6C 5F 73 74 75 62)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x8
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x1A
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 11
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 12
+// CHECK: Name: __static_data (5F 5F 73 74 61 74 69 63 5F 64 61 74 61 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 13
+// CHECK: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x6
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 14
+// CHECK: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x7
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 15
+// CHECK: Name: __dyld (5F 5F 64 79 6C 64 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 16
+// CHECK: Name: __mod_init_func (5F 5F 6D 6F 64 5F 69 6E 69 74 5F 66 75 6E 63 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x9
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 17
+// CHECK: Name: __mod_term_func (5F 5F 6D 6F 64 5F 74 65 72 6D 5F 66 75 6E 63 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0xA
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 18
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 19
+// CHECK: Name: __class (5F 5F 63 6C 61 73 73 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 20
+// CHECK: Name: __meta_class (5F 5F 6D 65 74 61 5F 63 6C 61 73 73 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 21
+// CHECK: Name: __cat_cls_meth (5F 5F 63 61 74 5F 63 6C 73 5F 6D 65 74 68 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 22
+// CHECK: Name: __cat_inst_meth (5F 5F 63 61 74 5F 69 6E 73 74 5F 6D 65 74 68 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 23
+// CHECK: Name: __protocol (5F 5F 70 72 6F 74 6F 63 6F 6C 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 24
+// CHECK: Name: __string_object (5F 5F 73 74 72 69 6E 67 5F 6F 62 6A 65 63 74 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 25
+// CHECK: Name: __cls_meth (5F 5F 63 6C 73 5F 6D 65 74 68 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 26
+// CHECK: Name: __inst_meth (5F 5F 69 6E 73 74 5F 6D 65 74 68 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 27
+// CHECK: Name: __cls_refs (5F 5F 63 6C 73 5F 72 65 66 73 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x5
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 28
+// CHECK: Name: __message_refs (5F 5F 6D 65 73 73 61 67 65 5F 72 65 66 73 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x5
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 29
+// CHECK: Name: __symbols (5F 5F 73 79 6D 62 6F 6C 73 00 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 30
+// CHECK: Name: __category (5F 5F 63 61 74 65 67 6F 72 79 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 31
+// CHECK: Name: __class_vars (5F 5F 63 6C 61 73 73 5F 76 61 72 73 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 32
+// CHECK: Name: __instance_vars (5F 5F 69 6E 73 74 61 6E 63 65 5F 76 61 72 73 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 33
+// CHECK: Name: __module_info (5F 5F 6D 6F 64 75 6C 65 5F 69 6E 66 6F 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 34
+// CHECK: Name: __selector_strs (5F 5F 73 65 6C 65 63 74 6F 72 5F 73 74 72 73 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: ExtReloc (0x2)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 35
+// CHECK: Name: __picsymbolstub4 (5F 5F 70 69 63 73 79 6D 62 6F 6C 73 74 75 62 34)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2652
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x8
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x10
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: D0 (136)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D1 (121)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __text (0x1)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D2 (106)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __const (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D3 (91)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __static_const (0x3)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D4 (76)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cstring (0x4)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D5 (61)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __literal4 (0x5)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D6 (46)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __literal8 (0x6)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D7 (31)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __literal16 (0x7)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D8 (16)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __constructor (0x8)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D9 (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __destructor (0x9)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D10 (147)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __symbol_stub (0xA)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D11 (132)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __picsymbol_stub (0xB)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D12 (117)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __data (0xC)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D13 (102)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __static_data (0xD)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D14 (87)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __nl_symbol_ptr (0xE)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D15 (72)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __la_symbol_ptr (0xF)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D16 (57)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __dyld (0x10)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D17 (42)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __mod_init_func (0x11)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D18 (27)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __mod_term_func (0x12)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D19 (12)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __const (0x13)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D20 (143)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __class (0x14)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D21 (128)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __meta_class (0x15)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D22 (113)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cat_cls_meth (0x16)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D23 (98)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cat_inst_meth (0x17)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D24 (83)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __protocol (0x18)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D25 (68)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __string_object (0x19)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D26 (53)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cls_meth (0x1A)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D27 (38)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __inst_meth (0x1B)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D28 (23)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cls_refs (0x1C)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D29 (8)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __message_refs (0x1D)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D30 (139)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __symbols (0x1E)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D31 (124)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __category (0x1F)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D32 (109)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __class_vars (0x20)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D33 (94)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __instance_vars (0x21)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D34 (79)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __module_info (0x22)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D35 (64)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cstring (0x4)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D36 (49)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cstring (0x4)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D37 (34)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __cstring (0x4)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D38 (19)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __selector_strs (0x23)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: D39 (4)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __picsymbolstub4 (0x24)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 2504
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x0
+// CHECK: fileoff: 2652
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 36
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 40
+// CHECK: iextdefsym: 40
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 40
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/x86_64-reloc-arithmetic.s b/test/MC/MachO/x86_64-reloc-arithmetic.s
index e82f69b6d477b..de524791faa35 100644
--- a/test/MC/MachO/x86_64-reloc-arithmetic.s
+++ b/test/MC/MachO/x86_64-reloc-arithmetic.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -r -t | FileCheck %s
// rdar://9906375
.org 0x100
@@ -7,15 +7,31 @@ _bar = _foo + 2
_baz:
leaq _bar(%rip), %rcx
-// CHECK: ('_relocations', [
-// CHECK-NEXT: # Relocation 0
-// CHECK-NEXT: (('word-0', 0x103),
-// CHECK-NEXT: ('word-1', 0x1d000001))
-
-// CHECK: # Symbol 1
-// CHECK-NEXT: (('n_strx', 6)
-// CHECK-NEXT: ('n_type', 0xe)
-// CHECK-NEXT: ('n_sect', 1)
-// CHECK-NEXT: ('n_desc', 0)
-// CHECK-NEXT: ('n_value', 258)
-// CHECK-NEXT: ('_string', '_bar')
+// CHECK: File: <stdin>
+// CHECK-NEXT: Format: Mach-O 64-bit x86-64
+// CHECK-NEXT: Arch: x86_64
+// CHECK-NEXT: AddressSize: 64bit
+// CHECK-NEXT: Relocations [
+// CHECK-NEXT: Section __text {
+// CHECK-NEXT: 0x103 1 2 1 X86_64_RELOC_SIGNED 0 _bar
+// CHECK-NEXT: }
+// CHECK-NEXT: ]
+// CHECK-NEXT: Symbols [
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: _foo (11)
+// CHECK-NEXT: Type: Section (0xE)
+// CHECK-NEXT: Section: __text (0x1)
+// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
+// CHECK-NEXT: Flags [ (0x0)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Value: 0x100
+// CHECK-NEXT: }
+// CHECK-NEXT: Symbol {
+// CHECK-NEXT: Name: _bar (6)
+// CHECK-NEXT: Type: Section (0xE)
+// CHECK-NEXT: Section: __text (0x1)
+// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
+// CHECK-NEXT: Flags [ (0x0)
+// CHECK-NEXT: ]
+// CHECK-NEXT: Value: 0x102
+// CHECK-NEXT: }
diff --git a/test/MC/MachO/x86_64-sections.s b/test/MC/MachO/x86_64-sections.s
index 8efd35e6cbff5..5ca83257f301c 100644
--- a/test/MC/MachO/x86_64-sections.s
+++ b/test/MC/MachO/x86_64-sections.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r --macho-segment | FileCheck %s
.text
.section __TEXT,__text,regular,pure_instructions
@@ -39,523 +39,641 @@
.subsections_via_symbols
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 1)
-// CHECK: ('load_commands_size', 2552)
-// CHECK: ('flag', 8192)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 2552)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 0)
-// CHECK: ('file_offset', 2584)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 31)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 2
-// CHECK: (('section_name', '__static_const\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 3
-// CHECK: (('section_name', '__cstring\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x2)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 4
-// CHECK: (('section_name', '__literal4\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x3)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 5
-// CHECK: (('section_name', '__literal8\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x4)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 6
-// CHECK: (('section_name', '__literal16\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0xe)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 7
-// CHECK: (('section_name', '__constructor\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 8
-// CHECK: (('section_name', '__destructor\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 9
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 10
-// CHECK: (('section_name', '__static_data\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 11
-// CHECK: (('section_name', '__dyld\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 12
-// CHECK: (('section_name', '__mod_init_func\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x9)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 13
-// CHECK: (('section_name', '__mod_term_func\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0xa)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 14
-// CHECK: (('section_name', '__const\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 15
-// CHECK: (('section_name', '__class\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 16
-// CHECK: (('section_name', '__meta_class\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 17
-// CHECK: (('section_name', '__cat_cls_meth\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 18
-// CHECK: (('section_name', '__cat_inst_meth\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 19
-// CHECK: (('section_name', '__protocol\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 20
-// CHECK: (('section_name', '__string_object\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 21
-// CHECK: (('section_name', '__cls_meth\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 22
-// CHECK: (('section_name', '__inst_meth\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 23
-// CHECK: (('section_name', '__cls_refs\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000005)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 24
-// CHECK: (('section_name', '__message_refs\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 2)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000005)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 25
-// CHECK: (('section_name', '__symbols\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 26
-// CHECK: (('section_name', '__category\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 27
-// CHECK: (('section_name', '__class_vars\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 28
-// CHECK: (('section_name', '__instance_vars\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 29
-// CHECK: (('section_name', '__module_info\x00\x00\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x10000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 30
-// CHECK: (('section_name', '__selector_strs\x00')
-// CHECK: ('segment_name', '__OBJC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 2584)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x2)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 2
+// CHECK: SizeOfLoadCommands: 2568
+// CHECK: Flags [ (0x2000)
+// CHECK: MH_SUBSECTIONS_VIA_SYMBOLS (0x2000)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __static_const (5F 5F 73 74 61 74 69 63 5F 63 6F 6E 73 74 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 3
+// CHECK: Name: __cstring (5F 5F 63 73 74 72 69 6E 67 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: ExtReloc (0x2)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 4
+// CHECK: Name: __literal4 (5F 5F 6C 69 74 65 72 61 6C 34 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x3
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 5
+// CHECK: Name: __literal8 (5F 5F 6C 69 74 65 72 61 6C 38 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: SomeInstructions (0x4)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 6
+// CHECK: Name: __literal16 (5F 5F 6C 69 74 65 72 61 6C 31 36 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 4
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0xE
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 7
+// CHECK: Name: __constructor (5F 5F 63 6F 6E 73 74 72 75 63 74 6F 72 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 8
+// CHECK: Name: __destructor (5F 5F 64 65 73 74 72 75 63 74 6F 72 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 9
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 10
+// CHECK: Name: __static_data (5F 5F 73 74 61 74 69 63 5F 64 61 74 61 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 11
+// CHECK: Name: __dyld (5F 5F 64 79 6C 64 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 12
+// CHECK: Name: __mod_init_func (5F 5F 6D 6F 64 5F 69 6E 69 74 5F 66 75 6E 63 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x9
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 13
+// CHECK: Name: __mod_term_func (5F 5F 6D 6F 64 5F 74 65 72 6D 5F 66 75 6E 63 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0xA
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 14
+// CHECK: Name: __const (5F 5F 63 6F 6E 73 74 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 15
+// CHECK: Name: __class (5F 5F 63 6C 61 73 73 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 16
+// CHECK: Name: __meta_class (5F 5F 6D 65 74 61 5F 63 6C 61 73 73 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 17
+// CHECK: Name: __cat_cls_meth (5F 5F 63 61 74 5F 63 6C 73 5F 6D 65 74 68 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 18
+// CHECK: Name: __cat_inst_meth (5F 5F 63 61 74 5F 69 6E 73 74 5F 6D 65 74 68 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 19
+// CHECK: Name: __protocol (5F 5F 70 72 6F 74 6F 63 6F 6C 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 20
+// CHECK: Name: __string_object (5F 5F 73 74 72 69 6E 67 5F 6F 62 6A 65 63 74 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 21
+// CHECK: Name: __cls_meth (5F 5F 63 6C 73 5F 6D 65 74 68 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 22
+// CHECK: Name: __inst_meth (5F 5F 69 6E 73 74 5F 6D 65 74 68 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 23
+// CHECK: Name: __cls_refs (5F 5F 63 6C 73 5F 72 65 66 73 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x5
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 24
+// CHECK: Name: __message_refs (5F 5F 6D 65 73 73 61 67 65 5F 72 65 66 73 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 2
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x5
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 25
+// CHECK: Name: __symbols (5F 5F 73 79 6D 62 6F 6C 73 00 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 26
+// CHECK: Name: __category (5F 5F 63 61 74 65 67 6F 72 79 00 00 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 27
+// CHECK: Name: __class_vars (5F 5F 63 6C 61 73 73 5F 76 61 72 73 00 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 28
+// CHECK: Name: __instance_vars (5F 5F 69 6E 73 74 61 6E 63 65 5F 76 61 72 73 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 29
+// CHECK: Name: __module_info (5F 5F 6D 6F 64 75 6C 65 5F 69 6E 66 6F 00 00 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x100000)
+// CHECK: NoDeadStrip (0x100000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 30
+// CHECK: Name: __selector_strs (5F 5F 73 65 6C 65 63 74 6F 72 5F 73 74 72 73 00)
+// CHECK: Segment: __OBJC (5F 5F 4F 42 4A 43 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 2600
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: ExtReloc (0x2)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 2552
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x0
+// CHECK: fileoff: 2600
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 31
+// CHECK: flags: 0x0
+// CHECK: }
diff --git a/test/MC/MachO/zerofill-1.s b/test/MC/MachO/zerofill-1.s
index 805a7861e1fe9..c3de2ebbf795e 100644
--- a/test/MC/MachO/zerofill-1.s
+++ b/test/MC/MachO/zerofill-1.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t --macho-segment --macho-dysymtab --macho-indirect-symbols | FileCheck %s
.text
.byte 0 // Align to 2**3 bytes, not 2**1
@@ -8,114 +8,124 @@
.data
.align 3
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 364)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 260)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 10)
-// CHECK: ('file_offset', 392)
-// CHECK: ('file_size', 8)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 3)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 1)
-// CHECK: ('offset', 392)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__common\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 8)
-// CHECK: ('size', 2)
-// CHECK: ('offset', 0)
-// CHECK: ('alignment', 1)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x1)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 2
-// CHECK: (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 8)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 400)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x0)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 400)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 412)
-// CHECK: ('strsize', 8)
-// CHECK: ('_string_data', '\x00zfill\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', 'zfill')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 380
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x1
+// CHECK: Offset: 408
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00 |.|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __common (5F 5F 63 6F 6D 6D 6F 6E 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x8
+// CHECK: Size: 0x2
+// CHECK: Offset: 0
+// CHECK: Alignment: 1
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: LocReloc (0x1)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 2
+// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x8
+// CHECK: Size: 0x0
+// CHECK: Offset: 416
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: zfill (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __common (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 260
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0xA
+// CHECK: fileoff: 408
+// CHECK: filesize: 8
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 3
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/zerofill-2.s b/test/MC/MachO/zerofill-2.s
index 16577e41d03a7..e2e2dfac6fe65 100644
--- a/test/MC/MachO/zerofill-2.s
+++ b/test/MC/MachO/zerofill-2.s
@@ -1,103 +1,110 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t --macho-segment --macho-dysymtab --macho-indirect-symbols | FileCheck %s
.byte 0
// This file has size 2, the tail padding doesn't count.
.zerofill __DATA, __bss, sym_a, 1
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 2)
-// CHECK: ('file_offset', 324)
-// CHECK: ('file_size', 1)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 1)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 1)
-// CHECK: ('size', 1)
-// CHECK: ('offset', 0)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x1)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 328)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 340)
-// CHECK: ('strsize', 8)
-// CHECK: ('_string_data', '\x00sym_a\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 1)
-// CHECK: ('_string', 'sym_a')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x1
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 00 |.|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __bss (5F 5F 62 73 73 00 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x1
+// CHECK: Size: 0x1
+// CHECK: Offset: 0
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: LocReloc (0x1)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: sym_a (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x1
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x2
+// CHECK: fileoff: 340
+// CHECK: filesize: 1
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/zerofill-3.s b/test/MC/MachO/zerofill-3.s
index a4cd31ec0a40a..2e4ff2781329a 100644
--- a/test/MC/MachO/zerofill-3.s
+++ b/test/MC/MachO/zerofill-3.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t --macho-segment --macho-dysymtab --macho-indirect-symbols | FileCheck %s
// FIXME: We don't get the order right currently, the assembler first
// orders the symbols, then assigns addresses. :(
@@ -19,123 +19,134 @@
.lcomm sym_lcomm_B, 4
.endif
-// CHECK: ('cputype', 7)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 296)
-// CHECK: ('flag', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 1)
-// CHECK: ('size', 192)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 16)
-// CHECK: ('file_offset', 324)
-// CHECK: ('file_size', 0)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 0)
-// CHECK: ('offset', 324)
-// CHECK: ('alignment', 0)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: # Section 1
-// CHECK: (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 16)
-// CHECK: ('offset', 0)
-// CHECK: ('alignment', 4)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x1)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 324)
-// CHECK: ('nsyms', 4)
-// CHECK: ('stroff', 372)
-// CHECK: ('strsize', 52)
-// CHECK: ('_string_data', '\x00sym_lcomm_D\x00sym_lcomm_C\x00sym_lcomm_B\x00sym_lcomm_A\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 37)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', 'sym_lcomm_A')
-// CHECK: ),
-// CHECK: # Symbol 1
-// CHECK: (('n_strx', 25)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 12)
-// CHECK: ('_string', 'sym_lcomm_B')
-// CHECK: ),
-// CHECK: # Symbol 2
-// CHECK: (('n_strx', 13)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', 'sym_lcomm_C')
-// CHECK: ),
-// CHECK: # Symbol 3
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xf)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', 'sym_lcomm_D')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 2)
-// CHECK: ('iextdefsym', 2)
-// CHECK: ('nextdefsym', 2)
-// CHECK: ('iundefsym', 4)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic (0xFEEDFACE)
+// CHECK: CpuType: X86 (0x7)
+// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 312
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x0
+// CHECK: Offset: 340
+// CHECK: Alignment: 0
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: SectionData (
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __bss (5F 5F 62 73 73 00 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x10
+// CHECK: Offset: 0
+// CHECK: Alignment: 4
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: LocReloc (0x1)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: sym_lcomm_A (37)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lcomm_B (25)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0xC
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lcomm_C (13)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: sym_lcomm_D (1)
+// CHECK: Extern
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT
+// CHECK: Name:
+// CHECK: Size: 192
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x10
+// CHECK: fileoff: 340
+// CHECK: filesize: 0
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 2
+// CHECK: iextdefsym: 2
+// CHECK: nextdefsym: 2
+// CHECK: iundefsym: 4
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/zerofill-4.s b/test/MC/MachO/zerofill-4.s
index d9c987c9b65af..b99e6289691ed 100644
--- a/test/MC/MachO/zerofill-4.s
+++ b/test/MC/MachO/zerofill-4.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -t | FileCheck %s
.zerofill __DATA,__bss,_fill0,1,0
.zerofill __DATA,__bss,_a,4,2
@@ -9,27 +9,81 @@
.zerofill __DATA,__bss,_fill3,1,0
.zerofill __DATA,__bss,_d,4,5
-// CHECK: # Symbol 0
-// CHECK: ('n_value', 0)
-// CHECK: ('_string', '_fill0')
-// CHECK: # Symbol 1
-// CHECK: ('n_value', 4)
-// CHECK: ('_string', '_a')
-// CHECK: # Symbol 2
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', '_fill1')
-// CHECK: # Symbol 3
-// CHECK: ('n_value', 16)
-// CHECK: ('_string', '_b')
-// CHECK: # Symbol 4
-// CHECK: ('n_value', 20)
-// CHECK: ('_string', '_fill2')
-// CHECK: # Symbol 5
-// CHECK: ('n_value', 32)
-// CHECK: ('_string', '_c')
-// CHECK: # Symbol 6
-// CHECK: ('n_value', 36)
-// CHECK: ('_string', '_fill3')
-// CHECK: # Symbol 7
-// CHECK: ('n_value', 64)
-// CHECK: ('_string', '_d')
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _fill0 (34)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x0
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _a (10)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x4
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _fill1 (27)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _b (7)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x10
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _fill2 (20)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x14
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _c (4)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x20
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _fill3 (13)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x24
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _d (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x40
+// CHECK: }
+// CHECK: ]
diff --git a/test/MC/MachO/zerofill-5.s b/test/MC/MachO/zerofill-5.s
index 91f251b9983cc..b688e6b0692e4 100644
--- a/test/MC/MachO/zerofill-5.s
+++ b/test/MC/MachO/zerofill-5.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple x86_64-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
+// RUN: llvm-mc -triple x86_64-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -file-headers -s -sd -r -t --macho-segment --macho-dysymtab --macho-indirect-symbols | FileCheck %s
.text
.align 3
@@ -6,104 +6,109 @@
.zerofill __DATA,__bss,_g0,8,3
-// CHECK: ('cputype', 16777223)
-// CHECK: ('cpusubtype', 3)
-// CHECK: ('filetype', 1)
-// CHECK: ('num_load_commands', 3)
-// CHECK: ('load_commands_size', 336)
-// CHECK: ('flag', 0)
-// CHECK: ('reserved', 0)
-// CHECK: ('load_commands', [
-// CHECK: # Load Command 0
-// CHECK: (('command', 25)
-// CHECK: ('size', 232)
-// CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('vm_addr', 0)
-// CHECK: ('vm_size', 16)
-// CHECK: ('file_offset', 368)
-// CHECK: ('file_size', 4)
-// CHECK: ('maxprot', 7)
-// CHECK: ('initprot', 7)
-// CHECK: ('num_sections', 2)
-// CHECK: ('flags', 0)
-// CHECK: ('sections', [
-// CHECK: # Section 0
-// CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 0)
-// CHECK: ('size', 4)
-// CHECK: ('offset', 368)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x80000000)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', '02000000')
-// CHECK: # Section 1
-// CHECK: (('section_name', '__bss\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
-// CHECK: ('address', 8)
-// CHECK: ('size', 8)
-// CHECK: ('offset', 0)
-// CHECK: ('alignment', 3)
-// CHECK: ('reloc_offset', 0)
-// CHECK: ('num_reloc', 0)
-// CHECK: ('flags', 0x1)
-// CHECK: ('reserved1', 0)
-// CHECK: ('reserved2', 0)
-// CHECK: ('reserved3', 0)
-// CHECK: ),
-// CHECK: ('_relocations', [
-// CHECK: ])
-// CHECK: ('_section_data', 'cffaedfe 07000001')
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 1
-// CHECK: (('command', 2)
-// CHECK: ('size', 24)
-// CHECK: ('symoff', 372)
-// CHECK: ('nsyms', 1)
-// CHECK: ('stroff', 388)
-// CHECK: ('strsize', 8)
-// CHECK: ('_string_data', '\x00_g0\x00\x00\x00\x00')
-// CHECK: ('_symbols', [
-// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
-// CHECK: ('n_type', 0xe)
-// CHECK: ('n_sect', 2)
-// CHECK: ('n_desc', 0)
-// CHECK: ('n_value', 8)
-// CHECK: ('_string', '_g0')
-// CHECK: ),
-// CHECK: ])
-// CHECK: ),
-// CHECK: # Load Command 2
-// CHECK: (('command', 11)
-// CHECK: ('size', 80)
-// CHECK: ('ilocalsym', 0)
-// CHECK: ('nlocalsym', 1)
-// CHECK: ('iextdefsym', 1)
-// CHECK: ('nextdefsym', 0)
-// CHECK: ('iundefsym', 1)
-// CHECK: ('nundefsym', 0)
-// CHECK: ('tocoff', 0)
-// CHECK: ('ntoc', 0)
-// CHECK: ('modtaboff', 0)
-// CHECK: ('nmodtab', 0)
-// CHECK: ('extrefsymoff', 0)
-// CHECK: ('nextrefsyms', 0)
-// CHECK: ('indirectsymoff', 0)
-// CHECK: ('nindirectsyms', 0)
-// CHECK: ('extreloff', 0)
-// CHECK: ('nextrel', 0)
-// CHECK: ('locreloff', 0)
-// CHECK: ('nlocrel', 0)
-// CHECK: ('_indirect_symbols', [
-// CHECK: ])
-// CHECK: ),
-// CHECK: ])
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 64-bit x86-64
+// CHECK: Arch: x86_64
+// CHECK: AddressSize: 64bit
+// CHECK: MachHeader {
+// CHECK: Magic: Magic64 (0xFEEDFACF)
+// CHECK: CpuType: X86-64 (0x1000007)
+// CHECK: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)
+// CHECK: FileType: Relocatable (0x1)
+// CHECK: NumOfLoadCommands: 4
+// CHECK: SizeOfLoadCommands: 352
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Reserved: 0x0
+// CHECK: }
+// CHECK: Sections [
+// CHECK: Section {
+// CHECK: Index: 0
+// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x0
+// CHECK: Size: 0x4
+// CHECK: Offset: 384
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: 0x0
+// CHECK: Attributes [ (0x800000)
+// CHECK: PureInstructions (0x800000)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: SectionData (
+// CHECK: 0000: 02000000 |....|
+// CHECK: )
+// CHECK: }
+// CHECK: Section {
+// CHECK: Index: 1
+// CHECK: Name: __bss (5F 5F 62 73 73 00 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
+// CHECK: Address: 0x8
+// CHECK: Size: 0x8
+// CHECK: Offset: 0
+// CHECK: Alignment: 3
+// CHECK: RelocationOffset: 0x0
+// CHECK: RelocationCount: 0
+// CHECK: Type: LocReloc (0x1)
+// CHECK: Attributes [ (0x0)
+// CHECK: ]
+// CHECK: Reserved1: 0x0
+// CHECK: Reserved2: 0x0
+// CHECK: Reserved3: 0x0
+// CHECK: }
+// CHECK: ]
+// CHECK: Relocations [
+// CHECK: ]
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _g0 (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x8
+// CHECK: }
+// CHECK: ]
+// CHECK: Indirect Symbols {
+// CHECK: Number: 0
+// CHECK: Symbols [
+// CHECK: ]
+// CHECK: }
+// CHECK: Segment {
+// CHECK: Cmd: LC_SEGMENT_64
+// CHECK: Name:
+// CHECK: Size: 232
+// CHECK: vmaddr: 0x0
+// CHECK: vmsize: 0x10
+// CHECK: fileoff: 384
+// CHECK: filesize: 4
+// CHECK: maxprot: rwx
+// CHECK: initprot: rwx
+// CHECK: nsects: 2
+// CHECK: flags: 0x0
+// CHECK: }
+// CHECK: Dysymtab {
+// CHECK: ilocalsym: 0
+// CHECK: nlocalsym: 1
+// CHECK: iextdefsym: 1
+// CHECK: nextdefsym: 0
+// CHECK: iundefsym: 1
+// CHECK: nundefsym: 0
+// CHECK: tocoff: 0
+// CHECK: ntoc: 0
+// CHECK: modtaboff: 0
+// CHECK: nmodtab: 0
+// CHECK: extrefsymoff: 0
+// CHECK: nextrefsyms: 0
+// CHECK: indirectsymoff: 0
+// CHECK: nindirectsyms: 0
+// CHECK: extreloff: 0
+// CHECK: nextrel: 0
+// CHECK: locreloff: 0
+// CHECK: nlocrel: 0
+// CHECK: }
diff --git a/test/MC/MachO/zerofill-sect-align.s b/test/MC/MachO/zerofill-sect-align.s
index 5d7730f439e99..d950b7f103c26 100644
--- a/test/MC/MachO/zerofill-sect-align.s
+++ b/test/MC/MachO/zerofill-sect-align.s
@@ -1,4 +1,4 @@
-// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
+// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -t | FileCheck %s
//
// Check that the section itself is aligned.
@@ -7,9 +7,27 @@
.zerofill __DATA,__bss,_a,1,0
.zerofill __DATA,__bss,_b,4,4
-// CHECK: # Symbol 0
-// CHECK: ('n_value', 16)
-// CHECK: ('_string', '_a')
-// CHECK: # Symbol 1
-// CHECK: ('n_value', 32)
-// CHECK: ('_string', '_b')
+// CHECK: File: <stdin>
+// CHECK: Format: Mach-O 32-bit i386
+// CHECK: Arch: i386
+// CHECK: AddressSize: 32bit
+// CHECK: Symbols [
+// CHECK: Symbol {
+// CHECK: Name: _a (4)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x10
+// CHECK: }
+// CHECK: Symbol {
+// CHECK: Name: _b (1)
+// CHECK: Type: Section (0xE)
+// CHECK: Section: __bss (0x2)
+// CHECK: RefType: UndefinedNonLazy (0x0)
+// CHECK: Flags [ (0x0)
+// CHECK: ]
+// CHECK: Value: 0x20
+// CHECK: }
+// CHECK: ]