summaryrefslogtreecommitdiff
path: root/test/tools/llvm-objdump
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-05-27 18:44:32 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-05-27 18:44:32 +0000
commit5a5ac124e1efaf208671f01c46edb15f29ed2a0b (patch)
treea6140557876943cdd800ee997c9317283394b22c /test/tools/llvm-objdump
parentf03b5bed27d0d2eafd68562ce14f8b5e3f1f0801 (diff)
Notes
Diffstat (limited to 'test/tools/llvm-objdump')
-rw-r--r--test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64bin0 -> 984 bytes
-rw-r--r--test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64bin0 -> 348 bytes
-rw-r--r--test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test11
-rw-r--r--test/tools/llvm-objdump/AArch64/macho-print-mrs.test3
-rw-r--r--test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-armbin0 -> 336 bytes
-rw-r--r--test/tools/llvm-objdump/ARM/macho-data-in-code.test16
-rw-r--r--test/tools/llvm-objdump/Inputs/common-symbol-elfbin0 -> 598 bytes
-rw-r--r--test/tools/llvm-objdump/Inputs/proc-specific-section-elfbin0 -> 836 bytes
-rwxr-xr-xtest/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386bin0 -> 26256 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386bin0 -> 55784 bytes
-rwxr-xr-xtest/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386bin0 -> 27908 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386bin0 -> 24312 bytes
-rwxr-xr-xtest/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64bin0 -> 22688 bytes
-rw-r--r--test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64bin0 -> 13580 bytes
-rwxr-xr-xtest/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64bin0 -> 8256 bytes
-rw-r--r--test/tools/llvm-objdump/X86/macho-archive-headers.test28
-rw-r--r--test/tools/llvm-objdump/X86/macho-cstring-dump.test13
-rw-r--r--test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test24
-rw-r--r--test/tools/llvm-objdump/X86/macho-dis-symname.test19
-rw-r--r--test/tools/llvm-objdump/X86/macho-dylib.test6
-rw-r--r--test/tools/llvm-objdump/X86/macho-indirect-symbols.test24
-rw-r--r--test/tools/llvm-objdump/X86/macho-info-plist.test7
-rw-r--r--test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test39
-rw-r--r--test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test40
-rw-r--r--test/tools/llvm-objdump/X86/macho-literals.test63
-rw-r--r--test/tools/llvm-objdump/X86/macho-nontext-disasm.test9
-rw-r--r--test/tools/llvm-objdump/X86/macho-objc-meta-data.test1039
-rw-r--r--test/tools/llvm-objdump/X86/macho-private-headers.test94
-rw-r--r--test/tools/llvm-objdump/X86/macho-relocations.test7
-rw-r--r--test/tools/llvm-objdump/X86/macho-section-contents.test17
-rw-r--r--test/tools/llvm-objdump/X86/macho-section-headers.test8
-rw-r--r--test/tools/llvm-objdump/X86/macho-section.test8
-rw-r--r--test/tools/llvm-objdump/X86/macho-symbol-table.test8
-rw-r--r--test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test9
-rw-r--r--test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test20
-rw-r--r--test/tools/llvm-objdump/X86/macho-unwind-info.test7
-rw-r--r--test/tools/llvm-objdump/common-symbol-elf.test3
-rw-r--r--test/tools/llvm-objdump/macho-sections.test5
-rw-r--r--test/tools/llvm-objdump/proc-specific-section-elf.test3
39 files changed, 1530 insertions, 0 deletions
diff --git a/test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64 b/test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64
new file mode 100644
index 0000000000000..12d33fcdf7514
--- /dev/null
+++ b/test/tools/llvm-objdump/AArch64/Inputs/link-opt-hints.macho-aarch64
Binary files differ
diff --git a/test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64 b/test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64
new file mode 100644
index 0000000000000..06cb13d07dafc
--- /dev/null
+++ b/test/tools/llvm-objdump/AArch64/Inputs/print-mrs.obj.macho-aarch64
Binary files differ
diff --git a/test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test b/test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test
new file mode 100644
index 0000000000000..932bc4fa83800
--- /dev/null
+++ b/test/tools/llvm-objdump/AArch64/macho-link-opt-hints.test
@@ -0,0 +1,11 @@
+RUN: llvm-objdump -m -link-opt-hints %p/Inputs/link-opt-hints.macho-aarch64 | FileCheck %s
+
+CHECK: Linker optimiztion hints (8 total bytes)
+CHECK: identifier 8 AdrpLdrGot
+CHECK: narguments 2
+CHECK: value 0x18
+CHECK: value 0x1c
+CHECK: identifier 7 AdrpAdd
+CHECK: narguments 2
+CHECK: value 0x6c
+CHECK: value 0x70
diff --git a/test/tools/llvm-objdump/AArch64/macho-print-mrs.test b/test/tools/llvm-objdump/AArch64/macho-print-mrs.test
new file mode 100644
index 0000000000000..cc1d14faf8d33
--- /dev/null
+++ b/test/tools/llvm-objdump/AArch64/macho-print-mrs.test
@@ -0,0 +1,3 @@
+RUN: llvm-objdump -d -m -no-show-raw-insn %p/Inputs/print-mrs.obj.macho-aarch64 | FileCheck %s
+
+CHECK: 0: mrs x0, S3_7_C15_C2_0
diff --git a/test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-arm b/test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-arm
new file mode 100644
index 0000000000000..e826f29a233a4
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/Inputs/data-in-code.macho-arm
Binary files differ
diff --git a/test/tools/llvm-objdump/ARM/macho-data-in-code.test b/test/tools/llvm-objdump/ARM/macho-data-in-code.test
new file mode 100644
index 0000000000000..c7a6da1d9504b
--- /dev/null
+++ b/test/tools/llvm-objdump/ARM/macho-data-in-code.test
@@ -0,0 +1,16 @@
+RUN: llvm-objdump -m -data-in-code %p/Inputs/data-in-code.macho-arm | FileCheck %s
+RUN: llvm-objdump -m -data-in-code -non-verbose %p/Inputs/data-in-code.macho-arm | FileCheck %s -check-prefix=NON_VERBOSE
+
+CHECK: Data in code table (4 entries)
+CHECK: offset length kind
+CHECK: 0x00000000 4 DATA
+CHECK: 0x00000004 4 JUMP_TABLE32
+CHECK: 0x00000008 2 JUMP_TABLE16
+CHECK: 0x0000000a 1 JUMP_TABLE8
+
+NON_VERBOSE: Data in code table (4 entries)
+NON_VERBOSE: offset length kind
+NON_VERBOSE: 0x00000000 4 0x0001
+NON_VERBOSE: 0x00000004 4 0x0004
+NON_VERBOSE: 0x00000008 2 0x0003
+NON_VERBOSE: 0x0000000a 1 0x0002
diff --git a/test/tools/llvm-objdump/Inputs/common-symbol-elf b/test/tools/llvm-objdump/Inputs/common-symbol-elf
new file mode 100644
index 0000000000000..9609edb041fe9
--- /dev/null
+++ b/test/tools/llvm-objdump/Inputs/common-symbol-elf
Binary files differ
diff --git a/test/tools/llvm-objdump/Inputs/proc-specific-section-elf b/test/tools/llvm-objdump/Inputs/proc-specific-section-elf
new file mode 100644
index 0000000000000..7c3d613cb87a2
--- /dev/null
+++ b/test/tools/llvm-objdump/Inputs/proc-specific-section-elf
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386
new file mode 100755
index 0000000000000..72b7ea83011a5
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.exe.macho-i386
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386
new file mode 100644
index 0000000000000..7f62ad1daeab8
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/Objc1.32bit.obj.macho-i386
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386
new file mode 100755
index 0000000000000..b44c7dc58731f
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.exe.macho-i386
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386 b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386
new file mode 100644
index 0000000000000..51449643fcdd6
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.32bit.obj.macho-i386
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64
new file mode 100755
index 0000000000000..5cee0773604a4
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.exe.macho-x86_64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64
new file mode 100644
index 0000000000000..5734780a1643a
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/Objc2.64bit.obj.macho-x86_64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64
new file mode 100755
index 0000000000000..a39424aab3121
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/Inputs/dylibModInit.macho-x86_64
Binary files differ
diff --git a/test/tools/llvm-objdump/X86/macho-archive-headers.test b/test/tools/llvm-objdump/X86/macho-archive-headers.test
new file mode 100644
index 0000000000000..1253b46529b9b
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-archive-headers.test
@@ -0,0 +1,28 @@
+RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all \
+RUN: | FileCheck %s
+RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all -archive-member-offsets \
+RUN: | FileCheck %s -check-prefix=OFFSETS
+RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -macho -archive-headers -arch all -non-verbose \
+RUN: | FileCheck %s -check-prefix=NON-VERBOSE
+
+# Note the date as printed by ctime(3) is time zone dependent and not checked.
+CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64)
+CHECK: -rw-r--r--124/11 44 {{.*}} __.SYMDEF SORTED
+CHECK: -rw-r--r--124/0 860 {{.*}} hello.o
+CHECK: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386)
+CHECK: -rw-r--r--124/11 60 {{.*}} __.SYMDEF SORTED
+CHECK: -rw-r--r--124/0 388 {{.*}} foo.o
+
+OFFSETS: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64)
+OFFSETS: 8 -rw-r--r--124/11 44 {{.*}} __.SYMDEF SORTED
+OFFSETS: 112 -rw-r--r--124/0 860 {{.*}} hello.o
+OFFSETS: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386)
+OFFSETS: 8 -rw-r--r--124/11 60 {{.*}} __.SYMDEF SORTED
+OFFSETS: 128 -rw-r--r--124/0 388 {{.*}} foo.o
+
+NON-VERBOSE: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture x86_64)
+NON-VERBOSE: 0100644 124/11 44 1399572709 #1/20
+NON-VERBOSE: 0100644 124/0 860 1399501499 #1/12
+NON-VERBOSE: Archive : {{.*}}/macho-universal-archive.x86_64.i386 (architecture i386)
+NON-VERBOSE: 0100644 124/11 60 1399572709 #1/20
+NON-VERBOSE: 0100644 124/0 388 1399572697 #1/12
diff --git a/test/tools/llvm-objdump/X86/macho-cstring-dump.test b/test/tools/llvm-objdump/X86/macho-cstring-dump.test
new file mode 100644
index 0000000000000..0e19f51d6a63a
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-cstring-dump.test
@@ -0,0 +1,13 @@
+RUN: llvm-objdump -m -section __TEXT,__cstring %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+RUN: llvm-objdump -m -section __TEXT,__cstring -no-leading-addr %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NO_ADDR
+RUN: llvm-objdump -m -section __TEXT,__cstring -non-verbose %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NON_VERBOSE
+
+CHECK: Contents of (__TEXT,__cstring) section
+CHECK: 000000000000003b Hello world\n
+
+NO_ADDR: Contents of (__TEXT,__cstring) section
+NO_ADDR: Hello world\n
+NO_ADDR-NOT: 000000000000003b
+
+NON_VERBOSE: Contents of (__TEXT,__cstring) section
+NON_VERBOSE: 000000000000003b 48 65 6c 6c 6f 20 77 6f 72 6c 64 0a 00
diff --git a/test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test b/test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test
new file mode 100644
index 0000000000000..df4618dc4681e
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-dis-no-leading-addr.test
@@ -0,0 +1,24 @@
+# RUN: llvm-objdump -m -d %p/Inputs/hello.obj.macho-x86_64 -no-show-raw-insn -print-imm-hex -no-leading-addr | FileCheck %s
+
+# CHECK: (__TEXT,__text) section
+# CHECK: _main:
+# CHECK: pushq %rbp
+# CHECK: movq %rsp, %rbp
+# CHECK: subq $0x20, %rsp
+# CHECK: leaq L_.str(%rip), %rax ## literal pool for: "Hello world\n"
+# CHECK: movl $_main, -0x4(%rbp)
+# CHECK: movl %edi, -0x8(%rbp)
+# CHECK: movq %rsi, -0x10(%rbp)
+# CHECK: movq %rdx, -0x18(%rbp)
+# CHECK: movq %rax, %rdi
+# CHECK: movb $0x0, %al
+# CHECK: callq _printf
+# CHECK: movl $_main, %ecx
+# CHECK: movl %eax, -0x1c(%rbp)
+# CHECK: movl %ecx, %eax
+# CHECK: addq $0x20, %rsp
+# CHECK: popq %rbp
+# CHECK: retq
+
+# CHECK-NOT: 0:
+# CHECK-NOT: 0000000000000000
diff --git a/test/tools/llvm-objdump/X86/macho-dis-symname.test b/test/tools/llvm-objdump/X86/macho-dis-symname.test
new file mode 100644
index 0000000000000..39d16ecba6f80
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-dis-symname.test
@@ -0,0 +1,19 @@
+# RUN: llvm-objdump -m -d %p/Inputs/exeThread.macho-x86_64 -dis-symname start -no-show-raw-insn -full-leading-addr -print-imm-hex | FileCheck %s
+
+# CHECK: (__TEXT,__text) section
+# CHECK: start:
+# CHECK: 0000000100000d00 pushq $0x0
+# CHECK: 0000000100000d02 movq %rsp, %rbp
+# CHECK: 0000000100000d05 andq $-0x10, %rsp
+# CHECK: 0000000100000d09 movq 0x8(%rbp), %rdi
+# CHECK: 0000000100000d0d leaq 0x10(%rbp), %rsi
+# CHECK: 0000000100000d11 movl %edi, %edx
+# CHECK: 0000000100000d13 addl $0x1, %edx
+# CHECK: 0000000100000d16 shll $0x3, %edx
+# CHECK: 0000000100000d19 addq %rsi, %rdx
+# CHECK: 0000000100000d1c callq __start
+# CHECK: 0000000100000d21 hlt
+
+# CHECK-NOT: __start:
+# CHECK-NOT: 0000000100000d22
+# CHECK-NOT: _main:
diff --git a/test/tools/llvm-objdump/X86/macho-dylib.test b/test/tools/llvm-objdump/X86/macho-dylib.test
new file mode 100644
index 0000000000000..0e31b8b930e65
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-dylib.test
@@ -0,0 +1,6 @@
+RUN: llvm-objdump -m -dylibs-used %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s -check-prefix=USED
+RUN: llvm-objdump -m -dylib-id %p/Inputs/dylibLoadKinds.macho-x86_64 | FileCheck %s -check-prefix=ID
+
+USED: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
+
+ID: /usr/lib/foo.dylib
diff --git a/test/tools/llvm-objdump/X86/macho-indirect-symbols.test b/test/tools/llvm-objdump/X86/macho-indirect-symbols.test
new file mode 100644
index 0000000000000..fdc465ad54258
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-indirect-symbols.test
@@ -0,0 +1,24 @@
+RUN: llvm-objdump -macho -indirect-symbols %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s
+RUN: llvm-objdump -macho -indirect-symbols -non-verbose %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s -check-prefix=NON_VERBOSE
+
+CHECK: Indirect symbols for (__TEXT,__stubs) 1 entries
+CHECK: address index name
+CHECK: 0x0000000100000f6c 2 _printf
+CHECK: Indirect symbols for (__DATA,__nl_symbol_ptr) 2 entries
+CHECK: address index name
+CHECK: 0x0000000100001000 3 dyld_stub_binder
+CHECK: 0x0000000100001008 ABSOLUTE
+CHECK: Indirect symbols for (__DATA,__la_symbol_ptr) 1 entries
+CHECK: address index name
+CHECK: 0x0000000100001010 2 _printf
+
+NON_VERBOSE: Indirect symbols for (__TEXT,__stubs) 1 entries
+NON_VERBOSE: address index
+NON_VERBOSE: 0x0000000100000f6c 2
+NON_VERBOSE: Indirect symbols for (__DATA,__nl_symbol_ptr) 2 entries
+NON_VERBOSE: address index
+NON_VERBOSE: 0x0000000100001000 3
+NON_VERBOSE: 0x0000000100001008 ABSOLUTE
+NON_VERBOSE: Indirect symbols for (__DATA,__la_symbol_ptr) 1 entries
+NON_VERBOSE: address index
+NON_VERBOSE: 0x0000000100001010 2
diff --git a/test/tools/llvm-objdump/X86/macho-info-plist.test b/test/tools/llvm-objdump/X86/macho-info-plist.test
new file mode 100644
index 0000000000000..bee1952ce9b82
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-info-plist.test
@@ -0,0 +1,7 @@
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -info-plist - | FileCheck %s
+
+.section __TEXT, __info_plist
+.asciz "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+
+# CHECK: Contents of (__TEXT,__info_plist) section
+# CHECK: <?xml version="1.0" encoding="UTF-8"?>
diff --git a/test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test b/test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test
new file mode 100644
index 0000000000000..62ed607c8ee54
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-literal-pointers-i386.test
@@ -0,0 +1,39 @@
+# RUN: llvm-mc < %s -triple i386-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp - | FileCheck %s
+# RUN: llvm-mc < %s -triple i386-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE
+
+.cstring
+L1: .asciz "Hello world\n"
+
+.literal4
+.align 2
+L2: .float 4.0
+
+.literal8
+.align 3
+L3: .double 8.0
+
+.literal16
+.align 4
+L4: .long 0x10000016, 0x20000016, 0x30000016, 0x40000016
+
+.const
+L5: .asciz "const non-literal string"
+
+.section __DATA,__litp, literal_pointers
+.align 2
+.long L1
+.long L2
+.long L3
+.long L4
+.long L5
+
+# CHECK: Contents of (__DATA,__litp) section
+# CHECK: 0000004c __TEXT:__cstring:Hello world\n
+# CHECK: 00000050 __TEXT:__literal4:0x40800000
+# CHECK: 00000054 __TEXT:__literal8:0x00000000 0x40200000
+# CHECK: 00000058 __TEXT:__literal16:0x10000016 0x20000016 0x30000016 0x40000016
+# CHECK: 0000005c 0x30 (not in a literal section)
+
+# NON-VERBOSE: Contents of (__DATA,__litp) section
+# NON-VERBOSE: 0000004c 00 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00
+# NON-VERBOSE: 0000005c 30 00 00 00
diff --git a/test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test b/test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test
new file mode 100644
index 0000000000000..f1912e8861cbe
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-literal-pointers-x86_64.test
@@ -0,0 +1,40 @@
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp - | FileCheck %s
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __DATA,__litp -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE
+
+.cstring
+L1: .asciz "Hello world\n"
+
+.literal4
+.align 2
+L2: .float 4.0
+
+.literal8
+.align 3
+L3: .double 8.0
+
+.literal16
+.align 4
+L4: .long 0x10000016, 0x20000016, 0x30000016, 0x40000016
+
+.const
+L5: .asciz "const non-literal string"
+
+.section __DATA,__litp, literal_pointers
+.align 3
+.quad L1
+.quad L2
+.quad L3
+.quad L4
+.quad L5
+
+# CHECK: Contents of (__DATA,__litp) section
+# CHECK: 0000000000000050 __TEXT:__cstring:Hello world\n
+# CHECK: 0000000000000058 __TEXT:__literal4:0x40800000
+# CHECK: 0000000000000060 __TEXT:__literal8:0x00000000 0x40200000
+# CHECK: 0000000000000068 __TEXT:__literal16:0x10000016 0x20000016 0x30000016 0x40000016
+# CHECK: 0000000000000070 0x30 (not in a literal section)
+
+# NON-VERBOSE: Contents of (__DATA,__litp) section
+# NON-VERBOSE: 0000000000000050 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00
+# NON-VERBOSE: 0000000000000060 18 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00
+# NON-VERBOSE: 0000000000000070 30 00 00 00 00 00 00 00
diff --git a/test/tools/llvm-objdump/X86/macho-literals.test b/test/tools/llvm-objdump/X86/macho-literals.test
new file mode 100644
index 0000000000000..d93ae679f348b
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-literals.test
@@ -0,0 +1,63 @@
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal4 - | FileCheck %s -check-prefix=CHECK-LIT4
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal4 -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE-LIT4
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal8 - | FileCheck %s -check-prefix=CHECK-LIT8
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal8 -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE-LIT8
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal16 - | FileCheck %s -check-prefix=CHECK-LIT16
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __TEXT,__literal16 -non-verbose - | FileCheck %s -check-prefix=NON-VERBOSE-LIT16
+
+.literal4
+.float 2.5
+.float 8.25
+.long 0x7f800000
+.long 0xff800000
+.long 0x7fc00000
+.long 0x7f800001
+
+# CHECK-LIT4: Contents of (__TEXT,__literal4) section
+# CHECK-LIT4: 0000000000000000 0x40200000
+# CHECK-LIT4: 0000000000000004 0x41040000
+# CHECK-LIT4: 0000000000000008 0x7f800000
+# CHECK-LIT4: 000000000000000c 0xff800000
+# CHECK-LIT4: 0000000000000010 0x7fc00000
+# CHECK-LIT4: 0000000000000014 0x7f800001
+
+# NON-VERBOSE-LIT4: Contents of (__TEXT,__literal4) section
+# NON-VERBOSE-LIT4: 0000000000000000 00 00 20 40 00 00 04 41 00 00 80 7f 00 00 80 ff
+# NON-VERBOSE-LIT4: 0000000000000010 00 00 c0 7f 01 00 80 7f
+
+.literal8
+.double 2.5
+.double 8.25
+.long 0
+.long 0x7ff00000
+.long 0
+.long 0xfff00000
+.long 0
+.long 0x7ff80000
+.long 1
+.long 0x7ff00000
+
+# CHECK-LIT8: Contents of (__TEXT,__literal8) section
+# CHECK-LIT8: 0000000000000018 0x00000000 0x40040000
+# CHECK-LIT8: 0000000000000020 0x00000000 0x40208000
+# CHECK-LIT8: 0000000000000028 0x00000000 0x7ff00000
+# CHECK-LIT8: 0000000000000030 0x00000000 0xfff00000
+# CHECK-LIT8: 0000000000000038 0x00000000 0x7ff80000
+# CHECK-LIT8: 0000000000000040 0x00000001 0x7ff00000
+
+# NON-VERBOSE-LIT8: Contents of (__TEXT,__literal8) section
+# NON-VERBOSE-LIT8: 0000000000000018 00 00 00 00 00 00 04 40 00 00 00 00 00 80 20 40
+# NON-VERBOSE-LIT8: 0000000000000028 00 00 00 00 00 00 f0 7f 00 00 00 00 00 00 f0 ff
+# NON-VERBOSE-LIT8: 0000000000000038 00 00 00 00 00 00 f8 7f 01 00 00 00 00 00 f0 7f
+
+.literal16
+.long 1
+.long 2
+.long 3
+.long 4
+
+# CHECK-LIT16: Contents of (__TEXT,__literal16) section
+# CHECK-LIT16: 0000000000000050 0x00000001 0x00000002 0x00000003 0x00000004
+
+# NON-VERBOSE-LIT16: Contents of (__TEXT,__literal16) section
+# NON-VERBOSE-LIT16: 0000000000000050 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00
diff --git a/test/tools/llvm-objdump/X86/macho-nontext-disasm.test b/test/tools/llvm-objdump/X86/macho-nontext-disasm.test
new file mode 100644
index 0000000000000..27b7bb441520f
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-nontext-disasm.test
@@ -0,0 +1,9 @@
+# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -section __FOO,__bar -full-leading-addr -print-imm-hex -no-show-raw-insn - | FileCheck %s
+
+.section __FOO, __bar
+_foo:
+ nop
+
+# CHECK: Contents of (__FOO,__bar) section
+# CHECK: _foo:
+# CHECK: 0000000000000000 nop
diff --git a/test/tools/llvm-objdump/X86/macho-objc-meta-data.test b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
new file mode 100644
index 0000000000000..f4abf6cdb49e7
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test
@@ -0,0 +1,1039 @@
+# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.64bit.exe.macho-x86_64 | FileCheck %s -check-prefix=OBJC2_64BIT_EXE
+# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.64bit.obj.macho-x86_64 | FileCheck %s -check-prefix=OBJC2_64BIT_OBJ
+# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.32bit.exe.macho-i386 | FileCheck %s -check-prefix=OBJC2_32BIT_EXE
+# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc2.32bit.obj.macho-i386 | FileCheck %s -check-prefix=OBJC2_32BIT_OBJ
+# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc1.32bit.exe.macho-i386 | FileCheck %s -check-prefix=OBJC1_32BIT_EXE
+# RUN: llvm-objdump -m -objc-meta-data %p/Inputs/Objc1.32bit.obj.macho-i386 | FileCheck %s -check-prefix=OBJC1_32BIT_OBJ
+# RUN: llvm-objdump -m -section __OBJC,__protocol %p/Inputs/Objc1.32bit.exe.macho-i386 | FileCheck %s -check-prefix=PROTOCOL
+
+OBJC2_64BIT_EXE: Contents of (__DATA,__objc_classlist) section
+OBJC2_64BIT_EXE: 0000000100002028 0x1000029f0
+OBJC2_64BIT_EXE: isa 0x100002a18
+OBJC2_64BIT_EXE: superclass 0x0
+OBJC2_64BIT_EXE: cache 0x0
+OBJC2_64BIT_EXE: vtable 0x0
+OBJC2_64BIT_EXE: data 0x1000020d0 (struct class_ro_t *)
+OBJC2_64BIT_EXE: flags 0x80
+OBJC2_64BIT_EXE: instanceStart 100
+OBJC2_64BIT_EXE: instanceSize 100
+OBJC2_64BIT_EXE: reserved 0x0
+OBJC2_64BIT_EXE: ivarLayout 0x0
+OBJC2_64BIT_EXE: name 0x100001b0e ViewController
+OBJC2_64BIT_EXE: baseMethods 0x100002098 (struct method_list_t *)
+OBJC2_64BIT_EXE: entsize 24
+OBJC2_64BIT_EXE: count 2
+OBJC2_64BIT_EXE: name 0x1000014ee viewDidLoad
+OBJC2_64BIT_EXE: types 0x100001b48 v16@0:8
+OBJC2_64BIT_EXE: imp 0x100001350
+OBJC2_64BIT_EXE: name 0x1000014fa setRepresentedObject:
+OBJC2_64BIT_EXE: types 0x100001b50 v24@0:8@16
+OBJC2_64BIT_EXE: imp 0x100001390
+OBJC2_64BIT_EXE: baseProtocols 0x0
+OBJC2_64BIT_EXE: ivars 0x0
+OBJC2_64BIT_EXE: weakIvarLayout 0x0
+OBJC2_64BIT_EXE: baseProperties 0x0
+OBJC2_64BIT_EXE: Meta Class
+OBJC2_64BIT_EXE: isa 0x0
+OBJC2_64BIT_EXE: superclass 0x0
+OBJC2_64BIT_EXE: cache 0x0
+OBJC2_64BIT_EXE: vtable 0x0
+OBJC2_64BIT_EXE: data 0x100002050 (struct class_ro_t *)
+OBJC2_64BIT_EXE: flags 0x81 RO_META
+OBJC2_64BIT_EXE: instanceStart 40
+OBJC2_64BIT_EXE: instanceSize 40
+OBJC2_64BIT_EXE: reserved 0x0
+OBJC2_64BIT_EXE: ivarLayout 0x0
+OBJC2_64BIT_EXE: name 0x100001b0e ViewController
+OBJC2_64BIT_EXE: baseMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_EXE: baseProtocols 0x0
+OBJC2_64BIT_EXE: ivars 0x0
+OBJC2_64BIT_EXE: weakIvarLayout 0x0
+OBJC2_64BIT_EXE: baseProperties 0x0
+OBJC2_64BIT_EXE: 0000000100002030 0x100002a68
+OBJC2_64BIT_EXE: isa 0x100002a40
+OBJC2_64BIT_EXE: superclass 0x0
+OBJC2_64BIT_EXE: cache 0x0
+OBJC2_64BIT_EXE: vtable 0x0
+OBJC2_64BIT_EXE: data 0x100002990 (struct class_ro_t *)
+OBJC2_64BIT_EXE: flags 0x80
+OBJC2_64BIT_EXE: instanceStart 8
+OBJC2_64BIT_EXE: instanceSize 8
+OBJC2_64BIT_EXE: reserved 0x0
+OBJC2_64BIT_EXE: ivarLayout 0x0
+OBJC2_64BIT_EXE: name 0x100001b1d AppDelegate
+OBJC2_64BIT_EXE: baseMethods 0x100002910 (struct method_list_t *)
+OBJC2_64BIT_EXE: entsize 24
+OBJC2_64BIT_EXE: count 2
+OBJC2_64BIT_EXE: name 0x100001885 applicationDidFinishLaunching:
+OBJC2_64BIT_EXE: types 0x100001b50 v24@0:8@16
+OBJC2_64BIT_EXE: imp 0x100001430
+OBJC2_64BIT_EXE: name 0x100001999 applicationWillTerminate:
+OBJC2_64BIT_EXE: types 0x100001b50 v24@0:8@16
+OBJC2_64BIT_EXE: imp 0x100001470
+OBJC2_64BIT_EXE: baseProtocols 0x1000028b0
+OBJC2_64BIT_EXE: count 1
+OBJC2_64BIT_EXE: list[0] 0x100002ae0 (struct protocol_t *)
+OBJC2_64BIT_EXE: isa 0x0
+OBJC2_64BIT_EXE: name 0x100001b29 NSApplicationDelegate
+OBJC2_64BIT_EXE: protocols 0x1000023f0
+OBJC2_64BIT_EXE: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_EXE: classMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_EXE: optionalInstanceMethods 0x100002408
+OBJC2_64BIT_EXE: optionalClassMethods 0x0
+OBJC2_64BIT_EXE: instanceProperties 0x0
+OBJC2_64BIT_EXE: ivars 0x0
+OBJC2_64BIT_EXE: weakIvarLayout 0x0
+OBJC2_64BIT_EXE: baseProperties 0x100002948
+OBJC2_64BIT_EXE: entsize 16
+OBJC2_64BIT_EXE: count 4
+OBJC2_64BIT_EXE: name 0x100001f25 hash
+OBJC2_64BIT_EXE: attributes 0x100001f2a TQ,R
+OBJC2_64BIT_EXE: name 0x100001f2f superclass
+OBJC2_64BIT_EXE: attributes 0x100001f3a T#,R
+OBJC2_64BIT_EXE: name 0x100001f3f description
+OBJC2_64BIT_EXE: attributes 0x100001f4b T@"NSString",R,C
+OBJC2_64BIT_EXE: name 0x100001f5c debugDescription
+OBJC2_64BIT_EXE: attributes 0x100001f4b T@"NSString",R,C
+OBJC2_64BIT_EXE: Meta Class
+OBJC2_64BIT_EXE: isa 0x0
+OBJC2_64BIT_EXE: superclass 0x0
+OBJC2_64BIT_EXE: cache 0x0
+OBJC2_64BIT_EXE: vtable 0x0
+OBJC2_64BIT_EXE: data 0x1000028c8 (struct class_ro_t *)
+OBJC2_64BIT_EXE: flags 0x81 RO_META
+OBJC2_64BIT_EXE: instanceStart 40
+OBJC2_64BIT_EXE: instanceSize 40
+OBJC2_64BIT_EXE: reserved 0x0
+OBJC2_64BIT_EXE: ivarLayout 0x0
+OBJC2_64BIT_EXE: name 0x100001b1d AppDelegate
+OBJC2_64BIT_EXE: baseMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_EXE: baseProtocols 0x1000028b0
+OBJC2_64BIT_EXE: count 1
+OBJC2_64BIT_EXE: list[0] 0x100002ae0 (struct protocol_t *)
+OBJC2_64BIT_EXE: isa 0x0
+OBJC2_64BIT_EXE: name 0x100001b29 NSApplicationDelegate
+OBJC2_64BIT_EXE: protocols 0x1000023f0
+OBJC2_64BIT_EXE: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_EXE: classMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_EXE: optionalInstanceMethods 0x100002408
+OBJC2_64BIT_EXE: optionalClassMethods 0x0
+OBJC2_64BIT_EXE: instanceProperties 0x0
+OBJC2_64BIT_EXE: ivars 0x0
+OBJC2_64BIT_EXE: weakIvarLayout 0x0
+OBJC2_64BIT_EXE: baseProperties 0x0
+OBJC2_64BIT_EXE: Contents of (__DATA,__objc_superrefs) section
+OBJC2_64BIT_EXE: 00000001000029e8 0x1000029f0
+OBJC2_64BIT_EXE: Contents of (__DATA,__objc_protolist) section
+OBJC2_64BIT_EXE: 0000000100002038 0x100002a90
+OBJC2_64BIT_EXE: 0000000100002040 0x100002ae0
+OBJC2_64BIT_EXE: Contents of (__DATA,__objc_imageinfo) section
+OBJC2_64BIT_EXE: version 0
+OBJC2_64BIT_EXE: flags 0x0
+
+OBJC2_64BIT_OBJ: Contents of (__DATA,__objc_classlist) section
+OBJC2_64BIT_OBJ: 0000000000001b00 0x1ad8 _OBJC_CLASS_$_AppDelegate
+OBJC2_64BIT_OBJ: isa 0x0 _OBJC_METACLASS_$_AppDelegate
+OBJC2_64BIT_OBJ: superclass 0x0 _OBJC_CLASS_$_NSObject
+OBJC2_64BIT_OBJ: cache 0x0 __objc_empty_cache
+OBJC2_64BIT_OBJ: vtable 0x0
+OBJC2_64BIT_OBJ: data l_OBJC_CLASS_RO_$_AppDelegate (struct class_ro_t *)
+OBJC2_64BIT_OBJ: flags 0x80
+OBJC2_64BIT_OBJ: instanceStart 8
+OBJC2_64BIT_OBJ: instanceSize 8
+OBJC2_64BIT_OBJ: reserved 0x0
+OBJC2_64BIT_OBJ: ivarLayout 0x0
+OBJC2_64BIT_OBJ: name 0x6f8 AppDelegate
+OBJC2_64BIT_OBJ: baseMethods l_OBJC_$_INSTANCE_METHODS_AppDelegate (struct method_list_t *)
+OBJC2_64BIT_OBJ: entsize 24
+OBJC2_64BIT_OBJ: count 2
+OBJC2_64BIT_OBJ: name 0xa98 applicationDidFinishLaunching:
+OBJC2_64BIT_OBJ: types 0x102e v24@0:8@16
+OBJC2_64BIT_OBJ: imp -[AppDelegate applicationDidFinishLaunching:]
+OBJC2_64BIT_OBJ: name 0xbac applicationWillTerminate:
+OBJC2_64BIT_OBJ: types 0x102e v24@0:8@16
+OBJC2_64BIT_OBJ: imp -[AppDelegate applicationWillTerminate:]
+OBJC2_64BIT_OBJ: baseProtocols l_OBJC_CLASS_PROTOCOLS_$_AppDelegate
+OBJC2_64BIT_OBJ: count 1
+OBJC2_64BIT_OBJ: list[0] l_OBJC_PROTOCOL_$_NSApplicationDelegate (struct protocol_t *)
+OBJC2_64BIT_OBJ: isa 0x0
+OBJC2_64BIT_OBJ: name 0x704 NSApplicationDelegate
+OBJC2_64BIT_OBJ: protocols 0x0
+OBJC2_64BIT_OBJ: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_OBJ: classMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_OBJ: optionalInstanceMethods 0x0
+OBJC2_64BIT_OBJ: optionalClassMethods 0x0
+OBJC2_64BIT_OBJ: instanceProperties 0x0
+OBJC2_64BIT_OBJ: ivars 0x0
+OBJC2_64BIT_OBJ: weakIvarLayout 0x0
+OBJC2_64BIT_OBJ: baseProperties l_OBJC_$_PROP_LIST_AppDelegate
+OBJC2_64BIT_OBJ: entsize 16
+OBJC2_64BIT_OBJ: count 4
+OBJC2_64BIT_OBJ: name 0x19b8 hash
+OBJC2_64BIT_OBJ: attributes 0x19bd TQ,R
+OBJC2_64BIT_OBJ: name 0x19c2 superclass
+OBJC2_64BIT_OBJ: attributes 0x19cd T#,R
+OBJC2_64BIT_OBJ: name 0x19d2 description
+OBJC2_64BIT_OBJ: attributes 0x19de T@"NSString",R,C
+OBJC2_64BIT_OBJ: name 0x19ef debugDescription
+OBJC2_64BIT_OBJ: attributes 0x19de T@"NSString",R,C
+OBJC2_64BIT_OBJ: Meta Class
+OBJC2_64BIT_OBJ: isa 0x0 _OBJC_METACLASS_$_NSObject
+OBJC2_64BIT_OBJ: superclass 0x0 _OBJC_METACLASS_$_NSObject
+OBJC2_64BIT_OBJ: cache 0x0 __objc_empty_cache
+OBJC2_64BIT_OBJ: vtable 0x0
+OBJC2_64BIT_OBJ: data l_OBJC_METACLASS_RO_$_AppDelegate (struct class_ro_t *)
+OBJC2_64BIT_OBJ: flags 0x81 RO_META
+OBJC2_64BIT_OBJ: instanceStart 40
+OBJC2_64BIT_OBJ: instanceSize 40
+OBJC2_64BIT_OBJ: reserved 0x0
+OBJC2_64BIT_OBJ: ivarLayout 0x0
+OBJC2_64BIT_OBJ: name 0x6f8 AppDelegate
+OBJC2_64BIT_OBJ: baseMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_OBJ: baseProtocols l_OBJC_CLASS_PROTOCOLS_$_AppDelegate
+OBJC2_64BIT_OBJ: count 1
+OBJC2_64BIT_OBJ: list[0] l_OBJC_PROTOCOL_$_NSApplicationDelegate (struct protocol_t *)
+OBJC2_64BIT_OBJ: isa 0x0
+OBJC2_64BIT_OBJ: name 0x704 NSApplicationDelegate
+OBJC2_64BIT_OBJ: protocols 0x0
+OBJC2_64BIT_OBJ: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_OBJ: classMethods 0x0 (struct method_list_t *)
+OBJC2_64BIT_OBJ: optionalInstanceMethods 0x0
+OBJC2_64BIT_OBJ: optionalClassMethods 0x0
+OBJC2_64BIT_OBJ: instanceProperties 0x0
+OBJC2_64BIT_OBJ: ivars 0x0
+OBJC2_64BIT_OBJ: weakIvarLayout 0x0
+OBJC2_64BIT_OBJ: baseProperties 0x0
+OBJC2_64BIT_OBJ: Contents of (__DATA,__objc_protolist) section
+OBJC2_64BIT_OBJ: 0000000000001aa0 0x1a00 l_OBJC_PROTOCOL_$_NSObject
+OBJC2_64BIT_OBJ: 0000000000001aa8 0x1a50 l_OBJC_PROTOCOL_$_NSApplicationDelegate
+OBJC2_64BIT_OBJ: Contents of (__DATA,__objc_imageinfo) section
+OBJC2_64BIT_OBJ: version 0
+OBJC2_64BIT_OBJ: flags 0x0
+
+OBJC2_32BIT_EXE: Objective-C segment
+OBJC2_32BIT_EXE: Contents of (__DATA,__objc_classlist) section
+OBJC2_32BIT_EXE: 00006068 0x6a84
+OBJC2_32BIT_EXE: isa 0x6a70
+OBJC2_32BIT_EXE: superclass 0x0
+OBJC2_32BIT_EXE: cache 0x0
+OBJC2_32BIT_EXE: vtable 0x0
+OBJC2_32BIT_EXE: data 0x66e0 (struct class_ro_t *)
+OBJC2_32BIT_EXE: flags 0x184 RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_EXE: instanceStart 4
+OBJC2_32BIT_EXE: instanceSize 8
+OBJC2_32BIT_EXE: ivarLayout 0x52c2
+OBJC2_32BIT_EXE: layout map: 0x01
+OBJC2_32BIT_EXE: name 0x5279 AppDelegate
+OBJC2_32BIT_EXE: baseMethods 0x6614 (struct method_list_t *)
+OBJC2_32BIT_EXE: entsize 12
+OBJC2_32BIT_EXE: count 10
+OBJC2_32BIT_EXE: name 0x454c application:didFinishLaunchingWithOptions:
+OBJC2_32BIT_EXE: types 0x562b c16@0:4@8@12
+OBJC2_32BIT_EXE: imp 0x23c0
+OBJC2_32BIT_EXE: name 0x4593 applicationWillResignActive:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x25f0
+OBJC2_32BIT_EXE: name 0x4a6a applicationDidEnterBackground:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x2640
+OBJC2_32BIT_EXE: name 0x4a89 applicationWillEnterForeground:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x2690
+OBJC2_32BIT_EXE: name 0x4577 applicationDidBecomeActive:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x26e0
+OBJC2_32BIT_EXE: name 0x463e applicationWillTerminate:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x2730
+OBJC2_32BIT_EXE: name 0x42da splitViewController:collapseSecondaryViewController:ontoPrimaryViewController:
+OBJC2_32BIT_EXE: types 0x5351 c20@0:4@8@12@16
+OBJC2_32BIT_EXE: imp 0x2780
+OBJC2_32BIT_EXE: name 0x4e21 .cxx_destruct
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x2a70
+OBJC2_32BIT_EXE: name 0x40fc window
+OBJC2_32BIT_EXE: types 0x5c80 @8@0:4
+OBJC2_32BIT_EXE: imp 0x2a00
+OBJC2_32BIT_EXE: name 0x4d1a setWindow:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x2a30
+OBJC2_32BIT_EXE: baseProtocols 0x65dc
+OBJC2_32BIT_EXE: count 2
+OBJC2_32BIT_EXE: list[0] 0x6ae8 (struct protocol_t *)
+OBJC2_32BIT_EXE: isa 0x0
+OBJC2_32BIT_EXE: name 0x5285 UISplitViewControllerDelegate
+OBJC2_32BIT_EXE: protocols 0x0
+OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: optionalInstanceMethods 0x6088
+OBJC2_32BIT_EXE: optionalClassMethods 0x0
+OBJC2_32BIT_EXE: instanceProperties 0x0
+OBJC2_32BIT_EXE: list[1] 0x6b40 (struct protocol_t *)
+OBJC2_32BIT_EXE: isa 0x0
+OBJC2_32BIT_EXE: name 0x52a3 UIApplicationDelegate
+OBJC2_32BIT_EXE: protocols 0x62e8
+OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: optionalInstanceMethods 0x62f4
+OBJC2_32BIT_EXE: optionalClassMethods 0x0
+OBJC2_32BIT_EXE: instanceProperties 0x6518
+OBJC2_32BIT_EXE: ivars 0x6694
+OBJC2_32BIT_EXE: entsize 20
+OBJC2_32BIT_EXE: count 1
+OBJC2_32BIT_EXE: offset 0x6a5c 4
+OBJC2_32BIT_EXE: name 0x4e2f _window
+OBJC2_32BIT_EXE: type 0x5d4b @"UIWindow"
+OBJC2_32BIT_EXE: alignment 2
+OBJC2_32BIT_EXE: size 4
+OBJC2_32BIT_EXE: weakIvarLayout 0x0
+OBJC2_32BIT_EXE: baseProperties 0x66b0
+OBJC2_32BIT_EXE: entsize 8
+OBJC2_32BIT_EXE: count 5
+OBJC2_32BIT_EXE: name 0x5df3 window
+OBJC2_32BIT_EXE: attributes 0x5e0b T@"UIWindow",&,N,V_window
+OBJC2_32BIT_EXE: name 0x5dab hash
+OBJC2_32BIT_EXE: attributes 0x5db0 TI,R
+OBJC2_32BIT_EXE: name 0x5db5 superclass
+OBJC2_32BIT_EXE: attributes 0x5dc0 T#,R
+OBJC2_32BIT_EXE: name 0x5dc5 description
+OBJC2_32BIT_EXE: attributes 0x5dd1 T@"NSString",R,C
+OBJC2_32BIT_EXE: name 0x5de2 debugDescription
+OBJC2_32BIT_EXE: attributes 0x5dd1 T@"NSString",R,C
+OBJC2_32BIT_EXE: Meta Class
+OBJC2_32BIT_EXE: isa 0x0
+OBJC2_32BIT_EXE: superclass 0x0
+OBJC2_32BIT_EXE: cache 0x0
+OBJC2_32BIT_EXE: vtable 0x0
+OBJC2_32BIT_EXE: data 0x65ec (struct class_ro_t *)
+OBJC2_32BIT_EXE: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_EXE: instanceStart 20
+OBJC2_32BIT_EXE: instanceSize 20
+OBJC2_32BIT_EXE: ivarLayout 0x0
+OBJC2_32BIT_EXE: name 0x5279 AppDelegate
+OBJC2_32BIT_EXE: baseMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: baseProtocols 0x65dc
+OBJC2_32BIT_EXE: count 2
+OBJC2_32BIT_EXE: list[0] 0x6ae8 (struct protocol_t *)
+OBJC2_32BIT_EXE: isa 0x0
+OBJC2_32BIT_EXE: name 0x5285 UISplitViewControllerDelegate
+OBJC2_32BIT_EXE: protocols 0x0
+OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: optionalInstanceMethods 0x6088
+OBJC2_32BIT_EXE: optionalClassMethods 0x0
+OBJC2_32BIT_EXE: instanceProperties 0x0
+OBJC2_32BIT_EXE: list[1] 0x6b40 (struct protocol_t *)
+OBJC2_32BIT_EXE: isa 0x0
+OBJC2_32BIT_EXE: name 0x52a3 UIApplicationDelegate
+OBJC2_32BIT_EXE: protocols 0x62e8
+OBJC2_32BIT_EXE: instanceMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: classMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: optionalInstanceMethods 0x62f4
+OBJC2_32BIT_EXE: optionalClassMethods 0x0
+OBJC2_32BIT_EXE: instanceProperties 0x6518
+OBJC2_32BIT_EXE: ivars 0x0
+OBJC2_32BIT_EXE: weakIvarLayout 0x0
+OBJC2_32BIT_EXE: baseProperties 0x0
+OBJC2_32BIT_EXE: 0000606c 0x6a98
+OBJC2_32BIT_EXE: isa 0x6aac
+OBJC2_32BIT_EXE: superclass 0x0
+OBJC2_32BIT_EXE: cache 0x0
+OBJC2_32BIT_EXE: vtable 0x0
+OBJC2_32BIT_EXE: data 0x6838 (struct class_ro_t *)
+OBJC2_32BIT_EXE: flags 0x184 RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_EXE: instanceStart 4
+OBJC2_32BIT_EXE: instanceSize 12
+OBJC2_32BIT_EXE: ivarLayout 0x52d9
+OBJC2_32BIT_EXE: layout map: 0x02
+OBJC2_32BIT_EXE: name 0x52c4 MasterViewController
+OBJC2_32BIT_EXE: baseMethods 0x6730 (struct method_list_t *)
+OBJC2_32BIT_EXE: entsize 12
+OBJC2_32BIT_EXE: count 15
+OBJC2_32BIT_EXE: name 0x4e37 awakeFromNib
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x2ab0
+OBJC2_32BIT_EXE: name 0x4ea2 viewDidLoad
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x2c20
+OBJC2_32BIT_EXE: name 0x4f43 didReceiveMemoryWarning
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x2e80
+OBJC2_32BIT_EXE: name 0x4ec3 insertNewObject:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x2ed0
+OBJC2_32BIT_EXE: name 0x5119 prepareForSegue:sender:
+OBJC2_32BIT_EXE: types 0x57b1 v16@0:4@8@12
+OBJC2_32BIT_EXE: imp 0x3160
+OBJC2_32BIT_EXE: name 0x5131 numberOfSectionsInTableView:
+OBJC2_32BIT_EXE: types 0x5326 i12@0:4@8
+OBJC2_32BIT_EXE: imp 0x34c0
+OBJC2_32BIT_EXE: name 0x514e tableView:numberOfRowsInSection:
+OBJC2_32BIT_EXE: types 0x5d57 i16@0:4@8i12
+OBJC2_32BIT_EXE: imp 0x3520
+OBJC2_32BIT_EXE: name 0x516f tableView:cellForRowAtIndexPath:
+OBJC2_32BIT_EXE: types 0x5422 @16@0:4@8@12
+OBJC2_32BIT_EXE: imp 0x35e0
+OBJC2_32BIT_EXE: name 0x5190 tableView:canEditRowAtIndexPath:
+OBJC2_32BIT_EXE: types 0x562b c16@0:4@8@12
+OBJC2_32BIT_EXE: imp 0x37e0
+OBJC2_32BIT_EXE: name 0x51b1 tableView:commitEditingStyle:forRowAtIndexPath:
+OBJC2_32BIT_EXE: types 0x5d64 v20@0:4@8i12@16
+OBJC2_32BIT_EXE: imp 0x3880
+OBJC2_32BIT_EXE: name 0x4e21 .cxx_destruct
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x3b40
+OBJC2_32BIT_EXE: name 0x51e1 detailViewController
+OBJC2_32BIT_EXE: types 0x5c80 @8@0:4
+OBJC2_32BIT_EXE: imp 0x3a30
+OBJC2_32BIT_EXE: name 0x4f2a setDetailViewController:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x3a60
+OBJC2_32BIT_EXE: name 0x4f5b objects
+OBJC2_32BIT_EXE: types 0x5c80 @8@0:4
+OBJC2_32BIT_EXE: imp 0x3aa0
+OBJC2_32BIT_EXE: name 0x4f68 setObjects:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x3af0
+OBJC2_32BIT_EXE: baseProtocols 0x0
+OBJC2_32BIT_EXE: ivars 0x67ec
+OBJC2_32BIT_EXE: entsize 20
+OBJC2_32BIT_EXE: count 2
+OBJC2_32BIT_EXE: offset 0x6a60 4
+OBJC2_32BIT_EXE: name 0x51f6 _detailViewController
+OBJC2_32BIT_EXE: type 0x5d74 @"DetailViewController"
+OBJC2_32BIT_EXE: alignment 2
+OBJC2_32BIT_EXE: size 4
+OBJC2_32BIT_EXE: offset 0x6a64 8
+OBJC2_32BIT_EXE: name 0x520c _objects
+OBJC2_32BIT_EXE: type 0x5d8c @"NSMutableArray"
+OBJC2_32BIT_EXE: alignment 2
+OBJC2_32BIT_EXE: size 4
+OBJC2_32BIT_EXE: weakIvarLayout 0x0
+OBJC2_32BIT_EXE: baseProperties 0x6820
+OBJC2_32BIT_EXE: entsize 8
+OBJC2_32BIT_EXE: count 2
+OBJC2_32BIT_EXE: name 0x5e35 detailViewController
+OBJC2_32BIT_EXE: attributes 0x5e4a T@"DetailViewController",&,N,V_detailViewController
+OBJC2_32BIT_EXE: name 0x5e7e objects
+OBJC2_32BIT_EXE: attributes 0x5e86 T@"NSMutableArray",&,V_objects
+OBJC2_32BIT_EXE: Meta Class
+OBJC2_32BIT_EXE: isa 0x0
+OBJC2_32BIT_EXE: superclass 0x0
+OBJC2_32BIT_EXE: cache 0x0
+OBJC2_32BIT_EXE: vtable 0x0
+OBJC2_32BIT_EXE: data 0x6708 (struct class_ro_t *)
+OBJC2_32BIT_EXE: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_EXE: instanceStart 20
+OBJC2_32BIT_EXE: instanceSize 20
+OBJC2_32BIT_EXE: ivarLayout 0x0
+OBJC2_32BIT_EXE: name 0x52c4 MasterViewController
+OBJC2_32BIT_EXE: baseMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: baseProtocols 0x0
+OBJC2_32BIT_EXE: ivars 0x0
+OBJC2_32BIT_EXE: weakIvarLayout 0x0
+OBJC2_32BIT_EXE: baseProperties 0x0
+OBJC2_32BIT_EXE: 00006070 0x6ac0
+OBJC2_32BIT_EXE: isa 0x6ad4
+OBJC2_32BIT_EXE: superclass 0x0
+OBJC2_32BIT_EXE: cache 0x0
+OBJC2_32BIT_EXE: vtable 0x0
+OBJC2_32BIT_EXE: data 0x6938 (struct class_ro_t *)
+OBJC2_32BIT_EXE: flags 0x184 RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_EXE: instanceStart 4
+OBJC2_32BIT_EXE: instanceSize 12
+OBJC2_32BIT_EXE: ivarLayout 0x52f0
+OBJC2_32BIT_EXE: layout map: 0x01 0x10
+OBJC2_32BIT_EXE: name 0x52db DetailViewController
+OBJC2_32BIT_EXE: baseMethods 0x6888 (struct method_list_t *)
+OBJC2_32BIT_EXE: entsize 12
+OBJC2_32BIT_EXE: count 8
+OBJC2_32BIT_EXE: name 0x5061 setDetailItem:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x3c70
+OBJC2_32BIT_EXE: name 0x5215 configureView
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x3d20
+OBJC2_32BIT_EXE: name 0x4ea2 viewDidLoad
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x3e20
+OBJC2_32BIT_EXE: name 0x4f43 didReceiveMemoryWarning
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x3e80
+OBJC2_32BIT_EXE: name 0x4e21 .cxx_destruct
+OBJC2_32BIT_EXE: types 0x5d44 v8@0:4
+OBJC2_32BIT_EXE: imp 0x3f90
+OBJC2_32BIT_EXE: name 0x41a0 detailItem
+OBJC2_32BIT_EXE: types 0x5c80 @8@0:4
+OBJC2_32BIT_EXE: imp 0x3ed0
+OBJC2_32BIT_EXE: name 0x5223 detailDescriptionLabel
+OBJC2_32BIT_EXE: types 0x5c80 @8@0:4
+OBJC2_32BIT_EXE: imp 0x3f00
+OBJC2_32BIT_EXE: name 0x523a setDetailDescriptionLabel:
+OBJC2_32BIT_EXE: types 0x5608 v12@0:4@8
+OBJC2_32BIT_EXE: imp 0x3f40
+OBJC2_32BIT_EXE: baseProtocols 0x0
+OBJC2_32BIT_EXE: ivars 0x68f0
+OBJC2_32BIT_EXE: entsize 20
+OBJC2_32BIT_EXE: count 2
+OBJC2_32BIT_EXE: offset 0x6a68 4
+OBJC2_32BIT_EXE: name 0x5255 _detailItem
+OBJC2_32BIT_EXE: type 0x5d9e @
+OBJC2_32BIT_EXE: alignment 2
+OBJC2_32BIT_EXE: size 4
+OBJC2_32BIT_EXE: offset 0x6a6c 8
+OBJC2_32BIT_EXE: name 0x5261 _detailDescriptionLabel
+OBJC2_32BIT_EXE: type 0x5da0 @"UILabel"
+OBJC2_32BIT_EXE: alignment 2
+OBJC2_32BIT_EXE: size 4
+OBJC2_32BIT_EXE: weakIvarLayout 0x52f3
+OBJC2_32BIT_EXE: layout map: 0x11
+OBJC2_32BIT_EXE: baseProperties 0x6920
+OBJC2_32BIT_EXE: entsize 8
+OBJC2_32BIT_EXE: count 2
+OBJC2_32BIT_EXE: name 0x5ea5 detailItem
+OBJC2_32BIT_EXE: attributes 0x5eb0 T@,&,N,V_detailItem
+OBJC2_32BIT_EXE: name 0x5ec4 detailDescriptionLabel
+OBJC2_32BIT_EXE: attributes 0x5edb T@"UILabel",W,N,V_detailDescriptionLabel
+OBJC2_32BIT_EXE: Meta Class
+OBJC2_32BIT_EXE: isa 0x0
+OBJC2_32BIT_EXE: superclass 0x0
+OBJC2_32BIT_EXE: cache 0x0
+OBJC2_32BIT_EXE: vtable 0x0
+OBJC2_32BIT_EXE: data 0x6860 (struct class_ro_t *)
+OBJC2_32BIT_EXE: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_EXE: instanceStart 20
+OBJC2_32BIT_EXE: instanceSize 20
+OBJC2_32BIT_EXE: ivarLayout 0x0
+OBJC2_32BIT_EXE: name 0x52db DetailViewController
+OBJC2_32BIT_EXE: baseMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_EXE: baseProtocols 0x0
+OBJC2_32BIT_EXE: ivars 0x0
+OBJC2_32BIT_EXE: weakIvarLayout 0x0
+OBJC2_32BIT_EXE: baseProperties 0x0
+OBJC2_32BIT_EXE: Contents of (__DATA,__objc_classrefs) section
+OBJC2_32BIT_EXE: 00006a30 0x0
+OBJC2_32BIT_EXE: 00006a34 0x6ac0
+OBJC2_32BIT_EXE: 00006a38 0x0
+OBJC2_32BIT_EXE: 00006a3c 0x0
+OBJC2_32BIT_EXE: 00006a40 0x0
+OBJC2_32BIT_EXE: 00006a44 0x0
+OBJC2_32BIT_EXE: 00006a48 0x0
+OBJC2_32BIT_EXE: 00006a4c 0x0
+OBJC2_32BIT_EXE: 00006a50 0x6a84
+OBJC2_32BIT_EXE: Contents of (__DATA,__objc_superrefs) section
+OBJC2_32BIT_EXE: 00006a54 0x6a98
+OBJC2_32BIT_EXE: 00006a58 0x6ac0
+OBJC2_32BIT_EXE: Contents of (__DATA,__objc_protolist) section
+OBJC2_32BIT_EXE: 00006074 0x6ae8
+OBJC2_32BIT_EXE: 00006078 0x6b14
+OBJC2_32BIT_EXE: 0000607c 0x6b40
+OBJC2_32BIT_EXE: Contents of (__DATA,__objc_imageinfo) section
+OBJC2_32BIT_EXE: version 0
+OBJC2_32BIT_EXE: flags 0x20
+
+OBJC2_32BIT_OBJ: Objective-C segment
+OBJC2_32BIT_OBJ: Contents of (__DATA,__objc_classlist) section
+OBJC2_32BIT_OBJ: 00003ae4 0x3914 _OBJC_CLASS_$_DetailViewController
+OBJC2_32BIT_OBJ: isa 0x3928 _OBJC_METACLASS_$_DetailViewController
+OBJC2_32BIT_OBJ: superclass 0x0 _OBJC_CLASS_$_UIViewController
+OBJC2_32BIT_OBJ: cache 0x0 __objc_empty_cache
+OBJC2_32BIT_OBJ: vtable 0x0 -[DetailViewController setDetailItem:]
+OBJC2_32BIT_OBJ: data 0x3a38 (struct class_ro_t *)
+OBJC2_32BIT_OBJ: flags 0x184 RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_OBJ: instanceStart 4
+OBJC2_32BIT_OBJ: instanceSize 12
+OBJC2_32BIT_OBJ: ivarLayout 0x3955
+OBJC2_32BIT_OBJ: layout map: 0x01 0x10
+OBJC2_32BIT_OBJ: name 0x3940 DetailViewController
+OBJC2_32BIT_OBJ: baseMethods 0x3988 (struct method_list_t *)
+OBJC2_32BIT_OBJ: entsize 12
+OBJC2_32BIT_OBJ: count 8
+OBJC2_32BIT_OBJ: name 0x3899 setDetailItem:
+OBJC2_32BIT_OBJ: types 0x3a60 v12@0:4@8
+OBJC2_32BIT_OBJ: imp 0x0 -[DetailViewController setDetailItem:]
+OBJC2_32BIT_OBJ: name 0x3830 configureView
+OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4
+OBJC2_32BIT_OBJ: imp 0xb0 -[DetailViewController configureView]
+OBJC2_32BIT_OBJ: name 0x3875 viewDidLoad
+OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4
+OBJC2_32BIT_OBJ: imp 0x1b0 -[DetailViewController viewDidLoad]
+OBJC2_32BIT_OBJ: name 0x3881 didReceiveMemoryWarning
+OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4
+OBJC2_32BIT_OBJ: imp 0x210 -[DetailViewController didReceiveMemoryWarning]
+OBJC2_32BIT_OBJ: name 0x38a8 .cxx_destruct
+OBJC2_32BIT_OBJ: types 0x3a6a v8@0:4
+OBJC2_32BIT_OBJ: imp 0x320 -[DetailViewController .cxx_destruct]
+OBJC2_32BIT_OBJ: name 0x383e detailItem
+OBJC2_32BIT_OBJ: types 0x3a71 @8@0:4
+OBJC2_32BIT_OBJ: imp 0x260 -[DetailViewController detailItem]
+OBJC2_32BIT_OBJ: name 0x3849 detailDescriptionLabel
+OBJC2_32BIT_OBJ: types 0x3a71 @8@0:4
+OBJC2_32BIT_OBJ: imp 0x290 -[DetailViewController detailDescriptionLabel]
+OBJC2_32BIT_OBJ: name 0x38b6 setDetailDescriptionLabel:
+OBJC2_32BIT_OBJ: types 0x3a60 v12@0:4@8
+OBJC2_32BIT_OBJ: imp 0x2d0 -[DetailViewController setDetailDescriptionLabel:]
+OBJC2_32BIT_OBJ: baseProtocols 0x0
+OBJC2_32BIT_OBJ: ivars 0x39f0
+OBJC2_32BIT_OBJ: entsize 20
+OBJC2_32BIT_OBJ: count 2
+OBJC2_32BIT_OBJ: offset 0x3828 4
+OBJC2_32BIT_OBJ: name 0x38d1 _detailItem
+OBJC2_32BIT_OBJ: type 0x3a78 @
+OBJC2_32BIT_OBJ: alignment 2
+OBJC2_32BIT_OBJ: size 4
+OBJC2_32BIT_OBJ: offset 0x382c 8
+OBJC2_32BIT_OBJ: name 0x38dd _detailDescriptionLabel
+OBJC2_32BIT_OBJ: type 0x3a7a @"UILabel"
+OBJC2_32BIT_OBJ: alignment 2
+OBJC2_32BIT_OBJ: size 4
+OBJC2_32BIT_OBJ: weakIvarLayout 0x3958
+OBJC2_32BIT_OBJ: layout map: 0x11
+OBJC2_32BIT_OBJ: baseProperties 0x3a20
+OBJC2_32BIT_OBJ: entsize 8
+OBJC2_32BIT_OBJ: count 2
+OBJC2_32BIT_OBJ: name 0x3a85 detailItem
+OBJC2_32BIT_OBJ: attributes 0x3a90 T@,&,N,V_detailItem
+OBJC2_32BIT_OBJ: name 0x3aa4 detailDescriptionLabel
+OBJC2_32BIT_OBJ: attributes 0x3abb T@"UILabel",W,N,V_detailDescriptionLabel
+OBJC2_32BIT_OBJ: Meta Class
+OBJC2_32BIT_OBJ: isa 0x0 _OBJC_METACLASS_$_NSObject
+OBJC2_32BIT_OBJ: superclass 0x0 _OBJC_METACLASS_$_UIViewController
+OBJC2_32BIT_OBJ: cache 0x0 __objc_empty_cache
+OBJC2_32BIT_OBJ: vtable 0x0 -[DetailViewController setDetailItem:]
+OBJC2_32BIT_OBJ: data 0x3960 (struct class_ro_t *)
+OBJC2_32BIT_OBJ: flags 0x185 RO_META RO_HAS_CXX_STRUCTORS
+OBJC2_32BIT_OBJ: instanceStart 20
+OBJC2_32BIT_OBJ: instanceSize 20
+OBJC2_32BIT_OBJ: ivarLayout 0x0
+OBJC2_32BIT_OBJ: name 0x3940 DetailViewController
+OBJC2_32BIT_OBJ: baseMethods 0x0 (struct method_list_t *)
+OBJC2_32BIT_OBJ: baseProtocols 0x0
+OBJC2_32BIT_OBJ: ivars 0x0
+OBJC2_32BIT_OBJ: weakIvarLayout 0x0
+OBJC2_32BIT_OBJ: baseProperties 0x0
+OBJC2_32BIT_OBJ: Contents of (__DATA,__objc_superrefs) section
+OBJC2_32BIT_OBJ: 0000393c 0x3914 _OBJC_CLASS_$_DetailViewController
+OBJC2_32BIT_OBJ: Contents of (__DATA,__objc_imageinfo) section
+OBJC2_32BIT_OBJ: version 0
+OBJC2_32BIT_OBJ: flags 0x20
+
+OBJC1_32BIT_EXE: Objective-C segment
+OBJC1_32BIT_EXE: Module 0x4128
+OBJC1_32BIT_EXE: version 7
+OBJC1_32BIT_EXE: size 16
+OBJC1_32BIT_EXE: name
+OBJC1_32BIT_EXE: symtab 0x00004108
+OBJC1_32BIT_EXE: sel_ref_cnt 0
+OBJC1_32BIT_EXE: refs 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: cls_def_cnt 1
+OBJC1_32BIT_EXE: cat_def_cnt 0
+OBJC1_32BIT_EXE: Class Definitions
+OBJC1_32BIT_EXE: defs[0] 0x00004000
+OBJC1_32BIT_EXE: isa 0x00004068
+OBJC1_32BIT_EXE: super_class 0x000025b8 NSViewController
+OBJC1_32BIT_EXE: name 0x000025c9 ViewController
+OBJC1_32BIT_EXE: version 0x00000000
+OBJC1_32BIT_EXE: info 0x00000001 CLS_CLASS
+OBJC1_32BIT_EXE: instance_size 0x00000034
+OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: methods 0x000040c8
+OBJC1_32BIT_EXE: obsolete 0x00000000
+OBJC1_32BIT_EXE: method_count 2
+OBJC1_32BIT_EXE: method_name 0x0000257c viewDidLoad
+OBJC1_32BIT_EXE: method_types 0x0000259e v8@0:4
+OBJC1_32BIT_EXE: method_imp 0x00002430
+OBJC1_32BIT_EXE: method_name 0x00002588 setRepresentedObject:
+OBJC1_32BIT_EXE: method_types 0x000025a5 v12@0:4@8
+OBJC1_32BIT_EXE: method_imp 0x00002480
+OBJC1_32BIT_EXE: cache 0x00000000
+OBJC1_32BIT_EXE: protocols 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: Meta Class
+OBJC1_32BIT_EXE: isa 0x000025af NSObject
+OBJC1_32BIT_EXE: super_class 0x000025b8 NSViewController
+OBJC1_32BIT_EXE: name 0x000025c9 ViewController
+OBJC1_32BIT_EXE: version 0x00000000
+OBJC1_32BIT_EXE: info 0x00000002 CLS_META
+OBJC1_32BIT_EXE: instance_size 0x00000030
+OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: cache 0x00000000
+OBJC1_32BIT_EXE: protocols 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: Module 0x4138
+OBJC1_32BIT_EXE: version 7
+OBJC1_32BIT_EXE: size 16
+OBJC1_32BIT_EXE: name
+OBJC1_32BIT_EXE: symtab 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: Module 0x4148
+OBJC1_32BIT_EXE: version 7
+OBJC1_32BIT_EXE: size 16
+OBJC1_32BIT_EXE: name
+OBJC1_32BIT_EXE: symtab 0x00004118
+OBJC1_32BIT_EXE: sel_ref_cnt 0
+OBJC1_32BIT_EXE: refs 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: cls_def_cnt 1
+OBJC1_32BIT_EXE: cat_def_cnt 0
+OBJC1_32BIT_EXE: Class Definitions
+OBJC1_32BIT_EXE: defs[0] 0x00004030
+OBJC1_32BIT_EXE: isa 0x00004098
+OBJC1_32BIT_EXE: super_class 0x000025af NSObject
+OBJC1_32BIT_EXE: name 0x00002faa AppDelegate
+OBJC1_32BIT_EXE: version 0x00000000
+OBJC1_32BIT_EXE: info 0x00000001 CLS_CLASS
+OBJC1_32BIT_EXE: instance_size 0x00000004
+OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: methods 0x000040e8
+OBJC1_32BIT_EXE: obsolete 0x00000000
+OBJC1_32BIT_EXE: method_count 2
+OBJC1_32BIT_EXE: method_name 0x00002c5b applicationDidFinishLaunching:
+OBJC1_32BIT_EXE: method_types 0x000025a5 v12@0:4@8
+OBJC1_32BIT_EXE: method_imp 0x00002510
+OBJC1_32BIT_EXE: method_name 0x00002d6f applicationWillTerminate:
+OBJC1_32BIT_EXE: method_types 0x000025a5 v12@0:4@8
+OBJC1_32BIT_EXE: method_imp 0x00002530
+OBJC1_32BIT_EXE: cache 0x00000000
+OBJC1_32BIT_EXE: protocols 0x000043b4
+OBJC1_32BIT_EXE: next 0x00000000
+OBJC1_32BIT_EXE: count 1
+OBJC1_32BIT_EXE: list[0] 0x00004390
+OBJC1_32BIT_EXE: isa 0x000030b0
+OBJC1_32BIT_EXE: protocol_name 0x00002dd3 NSApplicationDelegate
+OBJC1_32BIT_EXE: protocol_list 0x000043a4
+OBJC1_32BIT_EXE: next 0x00000000
+OBJC1_32BIT_EXE: count 1
+OBJC1_32BIT_EXE: list[0] 0x0000437c
+OBJC1_32BIT_EXE: isa 0x00003120
+OBJC1_32BIT_EXE: protocol_name 0x000025af NSObject
+OBJC1_32BIT_EXE: protocol_list 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: instance_methods 0x00004290
+OBJC1_32BIT_EXE: count 19
+OBJC1_32BIT_EXE: list[0]
+OBJC1_32BIT_EXE: name 0x00002de9 isEqual:
+OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8
+OBJC1_32BIT_EXE: list[1]
+OBJC1_32BIT_EXE: name 0x00002df2 class
+OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4
+OBJC1_32BIT_EXE: list[2]
+OBJC1_32BIT_EXE: name 0x00002dff self
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: list[3]
+OBJC1_32BIT_EXE: name 0x00002e0b performSelector:
+OBJC1_32BIT_EXE: types 0x00002e1c @12@0:4:8
+OBJC1_32BIT_EXE: list[4]
+OBJC1_32BIT_EXE: name 0x00002e26 performSelector:withObject:
+OBJC1_32BIT_EXE: types 0x00002e42 @16@0:4:8@12
+OBJC1_32BIT_EXE: list[5]
+OBJC1_32BIT_EXE: name 0x00002e4f performSelector:withObject:withObject:
+OBJC1_32BIT_EXE: types 0x00002e76 @20@0:4:8@12@16
+OBJC1_32BIT_EXE: list[6]
+OBJC1_32BIT_EXE: name 0x00002e86 isProxy
+OBJC1_32BIT_EXE: types 0x00002e8e c8@0:4
+OBJC1_32BIT_EXE: list[7]
+OBJC1_32BIT_EXE: name 0x00002e95 isKindOfClass:
+OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8
+OBJC1_32BIT_EXE: list[8]
+OBJC1_32BIT_EXE: name 0x00002eae isMemberOfClass:
+OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8
+OBJC1_32BIT_EXE: list[9]
+OBJC1_32BIT_EXE: name 0x00002ebf conformsToProtocol:
+OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8
+OBJC1_32BIT_EXE: list[10]
+OBJC1_32BIT_EXE: name 0x00002ee7 respondsToSelector:
+OBJC1_32BIT_EXE: types 0x00002efb c12@0:4:8
+OBJC1_32BIT_EXE: list[11]
+OBJC1_32BIT_EXE: name 0x00002f05 retain
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: list[12]
+OBJC1_32BIT_EXE: name 0x00002f0c release
+OBJC1_32BIT_EXE: types 0x00002f14 Vv8@0:4
+OBJC1_32BIT_EXE: list[13]
+OBJC1_32BIT_EXE: name 0x00002f1c autorelease
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: list[14]
+OBJC1_32BIT_EXE: name 0x00002f28 retainCount
+OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4
+OBJC1_32BIT_EXE: list[15]
+OBJC1_32BIT_EXE: name 0x00002f3b zone
+OBJC1_32BIT_EXE: types 0x00002f40 ^{_NSZone=}8@0:4
+OBJC1_32BIT_EXE: list[16]
+OBJC1_32BIT_EXE: name 0x00002f51 hash
+OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4
+OBJC1_32BIT_EXE: list[17]
+OBJC1_32BIT_EXE: name 0x00002f56 superclass
+OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4
+OBJC1_32BIT_EXE: list[18]
+OBJC1_32BIT_EXE: name 0x00002f61 description
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: instance_methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: Meta Class
+OBJC1_32BIT_EXE: isa 0x000025af NSObject
+OBJC1_32BIT_EXE: super_class 0x000025af NSObject
+OBJC1_32BIT_EXE: name 0x00002faa AppDelegate
+OBJC1_32BIT_EXE: version 0x00000000
+OBJC1_32BIT_EXE: info 0x00000002 CLS_META
+OBJC1_32BIT_EXE: instance_size 0x00000030
+OBJC1_32BIT_EXE: ivars 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: cache 0x00000000
+OBJC1_32BIT_EXE: protocols 0x000043b4
+OBJC1_32BIT_EXE: next 0x00000000
+OBJC1_32BIT_EXE: count 1
+OBJC1_32BIT_EXE: list[0] 0x00004390
+OBJC1_32BIT_EXE: isa 0x000030b0
+OBJC1_32BIT_EXE: protocol_name 0x00002dd3 NSApplicationDelegate
+OBJC1_32BIT_EXE: protocol_list 0x000043a4
+OBJC1_32BIT_EXE: next 0x00000000
+OBJC1_32BIT_EXE: count 1
+OBJC1_32BIT_EXE: list[0] 0x0000437c
+OBJC1_32BIT_EXE: isa 0x00003120
+OBJC1_32BIT_EXE: protocol_name 0x000025af NSObject
+OBJC1_32BIT_EXE: protocol_list 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: instance_methods 0x00004290
+OBJC1_32BIT_EXE: count 19
+OBJC1_32BIT_EXE: list[0]
+OBJC1_32BIT_EXE: name 0x00002de9 isEqual:
+OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8
+OBJC1_32BIT_EXE: list[1]
+OBJC1_32BIT_EXE: name 0x00002df2 class
+OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4
+OBJC1_32BIT_EXE: list[2]
+OBJC1_32BIT_EXE: name 0x00002dff self
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: list[3]
+OBJC1_32BIT_EXE: name 0x00002e0b performSelector:
+OBJC1_32BIT_EXE: types 0x00002e1c @12@0:4:8
+OBJC1_32BIT_EXE: list[4]
+OBJC1_32BIT_EXE: name 0x00002e26 performSelector:withObject:
+OBJC1_32BIT_EXE: types 0x00002e42 @16@0:4:8@12
+OBJC1_32BIT_EXE: list[5]
+OBJC1_32BIT_EXE: name 0x00002e4f performSelector:withObject:withObject:
+OBJC1_32BIT_EXE: types 0x00002e76 @20@0:4:8@12@16
+OBJC1_32BIT_EXE: list[6]
+OBJC1_32BIT_EXE: name 0x00002e86 isProxy
+OBJC1_32BIT_EXE: types 0x00002e8e c8@0:4
+OBJC1_32BIT_EXE: list[7]
+OBJC1_32BIT_EXE: name 0x00002e95 isKindOfClass:
+OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8
+OBJC1_32BIT_EXE: list[8]
+OBJC1_32BIT_EXE: name 0x00002eae isMemberOfClass:
+OBJC1_32BIT_EXE: types 0x00002ea4 c12@0:4#8
+OBJC1_32BIT_EXE: list[9]
+OBJC1_32BIT_EXE: name 0x00002ebf conformsToProtocol:
+OBJC1_32BIT_EXE: types 0x000026e7 c12@0:4@8
+OBJC1_32BIT_EXE: list[10]
+OBJC1_32BIT_EXE: name 0x00002ee7 respondsToSelector:
+OBJC1_32BIT_EXE: types 0x00002efb c12@0:4:8
+OBJC1_32BIT_EXE: list[11]
+OBJC1_32BIT_EXE: name 0x00002f05 retain
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: list[12]
+OBJC1_32BIT_EXE: name 0x00002f0c release
+OBJC1_32BIT_EXE: types 0x00002f14 Vv8@0:4
+OBJC1_32BIT_EXE: list[13]
+OBJC1_32BIT_EXE: name 0x00002f1c autorelease
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: list[14]
+OBJC1_32BIT_EXE: name 0x00002f28 retainCount
+OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4
+OBJC1_32BIT_EXE: list[15]
+OBJC1_32BIT_EXE: name 0x00002f3b zone
+OBJC1_32BIT_EXE: types 0x00002f40 ^{_NSZone=}8@0:4
+OBJC1_32BIT_EXE: list[16]
+OBJC1_32BIT_EXE: name 0x00002f51 hash
+OBJC1_32BIT_EXE: types 0x00002f34 I8@0:4
+OBJC1_32BIT_EXE: list[17]
+OBJC1_32BIT_EXE: name 0x00002f56 superclass
+OBJC1_32BIT_EXE: types 0x00002df8 #8@0:4
+OBJC1_32BIT_EXE: list[18]
+OBJC1_32BIT_EXE: name 0x00002f61 description
+OBJC1_32BIT_EXE: types 0x00002e04 @8@0:4
+OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: instance_methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: class_methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_EXE: Contents of (__OBJC,__image_info) section
+OBJC1_32BIT_EXE: version 0
+OBJC1_32BIT_EXE: flags 0x0 RR
+
+OBJC1_32BIT_OBJ: Objective-C segment
+OBJC1_32BIT_OBJ: Module 0xb344
+OBJC1_32BIT_OBJ: version 7
+OBJC1_32BIT_OBJ: size 16
+OBJC1_32BIT_OBJ: name
+OBJC1_32BIT_OBJ: symtab 0x0000b334
+OBJC1_32BIT_OBJ: sel_ref_cnt 0
+OBJC1_32BIT_OBJ: refs 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_OBJ: cls_def_cnt 1
+OBJC1_32BIT_OBJ: cat_def_cnt 0
+OBJC1_32BIT_OBJ: Class Definitions
+OBJC1_32BIT_OBJ: defs[0] 0x0000b24c
+OBJC1_32BIT_OBJ: isa 0x0000b2e4
+OBJC1_32BIT_OBJ: super_class 0x0000b2b8 NSViewController
+OBJC1_32BIT_OBJ: name 0x0000b2c9 ViewController
+OBJC1_32BIT_OBJ: version 0x00000000
+OBJC1_32BIT_OBJ: info 0x00000001 CLS_CLASS
+OBJC1_32BIT_OBJ: instance_size 0x00000034
+OBJC1_32BIT_OBJ: ivars 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_OBJ: methods 0x0000b314
+OBJC1_32BIT_OBJ: obsolete 0x00000000
+OBJC1_32BIT_OBJ: method_count 2
+OBJC1_32BIT_OBJ: method_name 0x0000b27c viewDidLoad
+OBJC1_32BIT_OBJ: method_types 0x0000b29e v8@0:4
+OBJC1_32BIT_OBJ: method_imp 0x00000000 -[ViewController viewDidLoad]
+OBJC1_32BIT_OBJ: method_name 0x0000b288 setRepresentedObject:
+OBJC1_32BIT_OBJ: method_types 0x0000b2a5 v12@0:4@8
+OBJC1_32BIT_OBJ: method_imp 0x00000050 -[ViewController setRepresentedObject:]
+OBJC1_32BIT_OBJ: cache 0x00000000
+OBJC1_32BIT_OBJ: protocols 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_OBJ: Meta Class
+OBJC1_32BIT_OBJ: isa 0x0000b2af NSObject
+OBJC1_32BIT_OBJ: super_class 0x0000b2b8 NSViewController
+OBJC1_32BIT_OBJ: name 0x0000b2c9 ViewController
+OBJC1_32BIT_OBJ: version 0x00000000
+OBJC1_32BIT_OBJ: info 0x00000002 CLS_META
+OBJC1_32BIT_OBJ: instance_size 0x00000030
+OBJC1_32BIT_OBJ: ivars 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_OBJ: methods 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_OBJ: cache 0x00000000
+OBJC1_32BIT_OBJ: protocols 0x00000000 (not in an __OBJC section)
+OBJC1_32BIT_OBJ: Contents of (__OBJC,__image_info) section
+OBJC1_32BIT_OBJ: version 0
+OBJC1_32BIT_OBJ: flags 0x0 RR
+
+PROTOCOL: Contents of (__OBJC,__protocol) section
+PROTOCOL: Protocol 0x437c
+PROTOCOL: isa 0x00003120
+PROTOCOL: protocol_name 0x000025af NSObject
+PROTOCOL: protocol_list 0x00000000 (not in an __OBJC section)
+PROTOCOL: instance_methods 0x00004290
+PROTOCOL: count 19
+PROTOCOL: list[0]
+PROTOCOL: name 0x00002de9 isEqual:
+PROTOCOL: types 0x000026e7 c12@0:4@8
+PROTOCOL: list[1]
+PROTOCOL: name 0x00002df2 class
+PROTOCOL: types 0x00002df8 #8@0:4
+PROTOCOL: list[2]
+PROTOCOL: name 0x00002dff self
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: list[3]
+PROTOCOL: name 0x00002e0b performSelector:
+PROTOCOL: types 0x00002e1c @12@0:4:8
+PROTOCOL: list[4]
+PROTOCOL: name 0x00002e26 performSelector:withObject:
+PROTOCOL: types 0x00002e42 @16@0:4:8@12
+PROTOCOL: list[5]
+PROTOCOL: name 0x00002e4f performSelector:withObject:withObject:
+PROTOCOL: types 0x00002e76 @20@0:4:8@12@16
+PROTOCOL: list[6]
+PROTOCOL: name 0x00002e86 isProxy
+PROTOCOL: types 0x00002e8e c8@0:4
+PROTOCOL: list[7]
+PROTOCOL: name 0x00002e95 isKindOfClass:
+PROTOCOL: types 0x00002ea4 c12@0:4#8
+PROTOCOL: list[8]
+PROTOCOL: name 0x00002eae isMemberOfClass:
+PROTOCOL: types 0x00002ea4 c12@0:4#8
+PROTOCOL: list[9]
+PROTOCOL: name 0x00002ebf conformsToProtocol:
+PROTOCOL: types 0x000026e7 c12@0:4@8
+PROTOCOL: list[10]
+PROTOCOL: name 0x00002ee7 respondsToSelector:
+PROTOCOL: types 0x00002efb c12@0:4:8
+PROTOCOL: list[11]
+PROTOCOL: name 0x00002f05 retain
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: list[12]
+PROTOCOL: name 0x00002f0c release
+PROTOCOL: types 0x00002f14 Vv8@0:4
+PROTOCOL: list[13]
+PROTOCOL: name 0x00002f1c autorelease
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: list[14]
+PROTOCOL: name 0x00002f28 retainCount
+PROTOCOL: types 0x00002f34 I8@0:4
+PROTOCOL: list[15]
+PROTOCOL: name 0x00002f3b zone
+PROTOCOL: types 0x00002f40 ^{_NSZone=}8@0:4
+PROTOCOL: list[16]
+PROTOCOL: name 0x00002f51 hash
+PROTOCOL: types 0x00002f34 I8@0:4
+PROTOCOL: list[17]
+PROTOCOL: name 0x00002f56 superclass
+PROTOCOL: types 0x00002df8 #8@0:4
+PROTOCOL: list[18]
+PROTOCOL: name 0x00002f61 description
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: class_methods 0x00000000 (not in an __OBJC section)
+PROTOCOL: Protocol 0x4390
+PROTOCOL: isa 0x000030b0
+PROTOCOL: protocol_name 0x00002dd3 NSApplicationDelegate
+PROTOCOL: protocol_list 0x000043a4
+PROTOCOL: next 0x00000000
+PROTOCOL: count 1
+PROTOCOL: list[0] 0x0000437c
+PROTOCOL: isa 0x00003120
+PROTOCOL: protocol_name 0x000025af NSObject
+PROTOCOL: protocol_list 0x00000000 (not in an __OBJC section)
+PROTOCOL: instance_methods 0x00004290
+PROTOCOL: count 19
+PROTOCOL: list[0]
+PROTOCOL: name 0x00002de9 isEqual:
+PROTOCOL: types 0x000026e7 c12@0:4@8
+PROTOCOL: list[1]
+PROTOCOL: name 0x00002df2 class
+PROTOCOL: types 0x00002df8 #8@0:4
+PROTOCOL: list[2]
+PROTOCOL: name 0x00002dff self
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: list[3]
+PROTOCOL: name 0x00002e0b performSelector:
+PROTOCOL: types 0x00002e1c @12@0:4:8
+PROTOCOL: list[4]
+PROTOCOL: name 0x00002e26 performSelector:withObject:
+PROTOCOL: types 0x00002e42 @16@0:4:8@12
+PROTOCOL: list[5]
+PROTOCOL: name 0x00002e4f performSelector:withObject:withObject:
+PROTOCOL: types 0x00002e76 @20@0:4:8@12@16
+PROTOCOL: list[6]
+PROTOCOL: name 0x00002e86 isProxy
+PROTOCOL: types 0x00002e8e c8@0:4
+PROTOCOL: list[7]
+PROTOCOL: name 0x00002e95 isKindOfClass:
+PROTOCOL: types 0x00002ea4 c12@0:4#8
+PROTOCOL: list[8]
+PROTOCOL: name 0x00002eae isMemberOfClass:
+PROTOCOL: types 0x00002ea4 c12@0:4#8
+PROTOCOL: list[9]
+PROTOCOL: name 0x00002ebf conformsToProtocol:
+PROTOCOL: types 0x000026e7 c12@0:4@8
+PROTOCOL: list[10]
+PROTOCOL: name 0x00002ee7 respondsToSelector:
+PROTOCOL: types 0x00002efb c12@0:4:8
+PROTOCOL: list[11]
+PROTOCOL: name 0x00002f05 retain
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: list[12]
+PROTOCOL: name 0x00002f0c release
+PROTOCOL: types 0x00002f14 Vv8@0:4
+PROTOCOL: list[13]
+PROTOCOL: name 0x00002f1c autorelease
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: list[14]
+PROTOCOL: name 0x00002f28 retainCount
+PROTOCOL: types 0x00002f34 I8@0:4
+PROTOCOL: list[15]
+PROTOCOL: name 0x00002f3b zone
+PROTOCOL: types 0x00002f40 ^{_NSZone=}8@0:4
+PROTOCOL: list[16]
+PROTOCOL: name 0x00002f51 hash
+PROTOCOL: types 0x00002f34 I8@0:4
+PROTOCOL: list[17]
+PROTOCOL: name 0x00002f56 superclass
+PROTOCOL: types 0x00002df8 #8@0:4
+PROTOCOL: list[18]
+PROTOCOL: name 0x00002f61 description
+PROTOCOL: types 0x00002e04 @8@0:4
+PROTOCOL: class_methods 0x00000000 (not in an __OBJC section)
+PROTOCOL: instance_methods 0x00000000 (not in an __OBJC section)
+PROTOCOL: class_methods 0x00000000 (not in an __OBJC section)
diff --git a/test/tools/llvm-objdump/X86/macho-private-headers.test b/test/tools/llvm-objdump/X86/macho-private-headers.test
index c80bb083af374..ff45b1823fff2 100644
--- a/test/tools/llvm-objdump/X86/macho-private-headers.test
+++ b/test/tools/llvm-objdump/X86/macho-private-headers.test
@@ -19,6 +19,8 @@
// RUN: | FileCheck %s -check-prefix=THREAD
// RUN: llvm-objdump -macho -p -arch i386 %p/Inputs/macho-universal.x86_64.i386 \
// RUN: | FileCheck %s -check-prefix=FATi386
+// RUN: llvm-objdump -p -non-verbose %p/Inputs/hello.obj.macho-x86_64 \
+// RUN: | FileCheck %s -check-prefix=NON_VERBOSE
CHECK: Mach header
CHECK: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
@@ -443,3 +445,95 @@ THREAD: gs 0x0000000000000000
FATi386: Mach header
FATi386: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
FATi386: MH_MAGIC I386 ALL 0x00 EXECUTE 16 716 NOUNDEFS DYLDLINK TWOLEVEL PIE MH_NO_HEAP_EXECUTION
+
+NON_VERBOSE: Mach header
+NON_VERBOSE: magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
+NON_VERBOSE: 0xfeedfacf 16777223 3 0x00 1 3 496 0x00002000
+NON_VERBOSE: Load command 0
+NON_VERBOSE: cmd LC_SEGMENT_64
+NON_VERBOSE: cmdsize 392
+NON_VERBOSE: segname
+NON_VERBOSE: vmaddr 0x0000000000000000
+NON_VERBOSE: vmsize 0x00000000000000a8
+NON_VERBOSE: fileoff 528
+NON_VERBOSE: filesize 168
+NON_VERBOSE: maxprot 0x00000007
+NON_VERBOSE: initprot 0x00000007
+NON_VERBOSE: nsects 4
+NON_VERBOSE: flags 0x0
+NON_VERBOSE: Section
+NON_VERBOSE: sectname __text
+NON_VERBOSE: segname __TEXT
+NON_VERBOSE: addr 0x0000000000000000
+NON_VERBOSE: size 0x000000000000003b
+NON_VERBOSE: offset 528
+NON_VERBOSE: align 2^4 (16)
+NON_VERBOSE: reloff 696
+NON_VERBOSE: nreloc 2
+NON_VERBOSE: flags 0x80000400
+NON_VERBOSE: reserved1 0
+NON_VERBOSE: reserved2 0
+NON_VERBOSE: Section
+NON_VERBOSE: sectname __cstring
+NON_VERBOSE: segname __TEXT
+NON_VERBOSE: addr 0x000000000000003b
+NON_VERBOSE: size 0x000000000000000d
+NON_VERBOSE: offset 587
+NON_VERBOSE: align 2^0 (1)
+NON_VERBOSE: reloff 0
+NON_VERBOSE: nreloc 0
+NON_VERBOSE: flags 0x00000002
+NON_VERBOSE: reserved1 0
+NON_VERBOSE: reserved2 0
+NON_VERBOSE: Section
+NON_VERBOSE: sectname __compact_unwind
+NON_VERBOSE: segname __LD
+NON_VERBOSE: addr 0x0000000000000048
+NON_VERBOSE: size 0x0000000000000020
+NON_VERBOSE: offset 600
+NON_VERBOSE: align 2^3 (8)
+NON_VERBOSE: reloff 712
+NON_VERBOSE: nreloc 1
+NON_VERBOSE: flags 0x02000000
+NON_VERBOSE: reserved1 0
+NON_VERBOSE: reserved2 0
+NON_VERBOSE: Section
+NON_VERBOSE: sectname __eh_frame
+NON_VERBOSE: segname __TEXT
+NON_VERBOSE: addr 0x0000000000000068
+NON_VERBOSE: size 0x0000000000000040
+NON_VERBOSE: offset 632
+NON_VERBOSE: align 2^3 (8)
+NON_VERBOSE: reloff 0
+NON_VERBOSE: nreloc 0
+NON_VERBOSE: flags 0x6800000b
+NON_VERBOSE: reserved1 0
+NON_VERBOSE: reserved2 0
+NON_VERBOSE: Load command 1
+NON_VERBOSE: cmd LC_SYMTAB
+NON_VERBOSE: cmdsize 24
+NON_VERBOSE: symoff 720
+NON_VERBOSE: nsyms 5
+NON_VERBOSE: stroff 800
+NON_VERBOSE: strsize 44
+NON_VERBOSE: Load command 2
+NON_VERBOSE: cmd LC_DYSYMTAB
+NON_VERBOSE: cmdsize 80
+NON_VERBOSE: ilocalsym 0
+NON_VERBOSE: nlocalsym 2
+NON_VERBOSE: iextdefsym 2
+NON_VERBOSE: nextdefsym 2
+NON_VERBOSE: iundefsym 4
+NON_VERBOSE: nundefsym 1
+NON_VERBOSE: tocoff 0
+NON_VERBOSE: ntoc 0
+NON_VERBOSE: modtaboff 0
+NON_VERBOSE: nmodtab 0
+NON_VERBOSE: extrefsymoff 0
+NON_VERBOSE: nextrefsyms 0
+NON_VERBOSE: indirectsymoff 0
+NON_VERBOSE: nindirectsyms 0
+NON_VERBOSE: extreloff 0
+NON_VERBOSE: nextrel 0
+NON_VERBOSE: locreloff 0
+NON_VERBOSE: nlocrel 0
diff --git a/test/tools/llvm-objdump/X86/macho-relocations.test b/test/tools/llvm-objdump/X86/macho-relocations.test
new file mode 100644
index 0000000000000..536aec8b1bcc9
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-relocations.test
@@ -0,0 +1,7 @@
+RUN: llvm-objdump -macho -r %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+
+CHECK: RELOCATION RECORDS FOR [__text]:
+CHECK: 0000000000000027 X86_64_RELOC_BRANCH _printf
+CHECK: 000000000000000b X86_64_RELOC_SIGNED L_.str
+CHECK: RELOCATION RECORDS FOR [__compact_unwind]:
+CHECK: 0000000000000000 X86_64_RELOC_UNSIGNED __text
diff --git a/test/tools/llvm-objdump/X86/macho-section-contents.test b/test/tools/llvm-objdump/X86/macho-section-contents.test
new file mode 100644
index 0000000000000..f62b5a7b52dbb
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-section-contents.test
@@ -0,0 +1,17 @@
+RUN: llvm-objdump -macho -s %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+
+CHECK: Contents of section __text:
+CHECK: 0000 554889e5 4883ec20 488d0500 000000c7 UH..H.. H.......
+CHECK: 0010 45fc0000 0000897d f8488975 f0488955 E......}.H.u.H.U
+CHECK: 0020 e84889c7 b000e800 000000b9 00000000 .H..............
+CHECK: 0030 8945e489 c84883c4 205dc3 .E...H.. ].
+CHECK: Contents of section __cstring:
+CHECK: 003b 48656c6c 6f20776f 726c640a 00 Hello world..
+CHECK: Contents of section __compact_unwind:
+CHECK: 0048 00000000 00000000 3b000000 00000001 ........;.......
+CHECK: 0058 00000000 00000000 00000000 00000000 ................
+CHECK: Contents of section __eh_frame:
+CHECK: 0068 14000000 00000000 017a5200 01781001 .........zR..x..
+CHECK: 0078 100c0708 90010000 24000000 1c000000 ........$.......
+CHECK: 0088 78ffffff ffffffff 3b000000 00000000 x.......;.......
+CHECK: 0098 00410e10 8602430d 06000000 00000000 .A....C.........
diff --git a/test/tools/llvm-objdump/X86/macho-section-headers.test b/test/tools/llvm-objdump/X86/macho-section-headers.test
new file mode 100644
index 0000000000000..5159d1808228a
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-section-headers.test
@@ -0,0 +1,8 @@
+RUN: llvm-objdump -macho -h %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+
+CHECK: Sections:
+CHECK: Idx Name Size Address Type
+CHECK: 0 __text 0000003b 0000000000000000 TEXT
+CHECK: 1 __cstring 0000000d 000000000000003b DATA
+CHECK: 2 __compact_unwind 00000020 0000000000000048 DATA
+CHECK: 3 __eh_frame 00000040 0000000000000068 DATA
diff --git a/test/tools/llvm-objdump/X86/macho-section.test b/test/tools/llvm-objdump/X86/macho-section.test
new file mode 100644
index 0000000000000..e4d7857f1414d
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-section.test
@@ -0,0 +1,8 @@
+// RUN: llvm-objdump -m -section __DATA,__mod_init_func %p/Inputs/dylibModInit.macho-x86_64 | FileCheck %s -check-prefix=MODINIT
+// RUN: llvm-objdump -m -section __DATA,__mod_init_func -non-verbose %p/Inputs/dylibModInit.macho-x86_64 | FileCheck %s -check-prefix=NON_VERBOSE
+
+MODINIT: Contents of (__DATA,__mod_init_func) section
+MODINIT: 0x0000000000001000 0x0000000000000f30 _libinit
+
+NON_VERBOSE: Contents of (__DATA,__mod_init_func) section
+NON_VERBOSE: 0000000000001000 30 0f 00 00 00 00 00 00
diff --git a/test/tools/llvm-objdump/X86/macho-symbol-table.test b/test/tools/llvm-objdump/X86/macho-symbol-table.test
new file mode 100644
index 0000000000000..3fe5aea6c3775
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-symbol-table.test
@@ -0,0 +1,8 @@
+RUN: llvm-objdump -macho -t %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+
+CHECK: SYMBOL TABLE:
+CHECK: 000000000000003b l F __TEXT,__cstring 00000000 L_.str
+CHECK: 0000000000000068 l F __TEXT,__eh_frame 00000000 EH_frame0
+CHECK: 0000000000000000 g F __TEXT,__text 00000000 _main
+CHECK: 0000000000000080 g F __TEXT,__eh_frame 00000000 _main.eh
+CHECK: 0000000000000000 *UND* 00000000 _printf
diff --git a/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test b/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test
index 1e1080a30f066..6f49b456227ec 100644
--- a/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test
+++ b/test/tools/llvm-objdump/X86/macho-symbolized-disassembly.test
@@ -7,6 +7,9 @@
// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.obj.macho-i386 | FileCheck %s -check-prefix=i386-OBJ
// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/hello.exe.macho-i386 | FileCheck %s -check-prefix=i386-EXE
+// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex -no-symbolic-operands %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -check-prefix=NO-SYM-OPS-OBJ
+// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex -no-symbolic-operands %p/Inputs/hello.exe.macho-x86_64 | FileCheck %s -check-prefix=NO-SYM-OPS-EXE
+
OBJ: 0000000000000008 leaq L_.str(%rip), %rax ## literal pool for: "Hello world\n"
OBJ: 0000000000000026 callq _printf
@@ -36,3 +39,9 @@ CXX-EXE: 00000001000014cb callq __ZNSt3__116__pad_and_outputIcNS_11char_traitsIc
i386-OBJ: 0000002f calll _printf
i386-EXE: 00001f6f calll 0x1f84 ## symbol stub for: _printf
+
+NO-SYM-OPS-OBJ: 0000000000000008 leaq (%rip), %rax
+NO-SYM-OPS-OBJ: 0000000000000026 callq 0x2b
+
+NO-SYM-OPS-EXE: 0000000100000f38 leaq 0x4f(%rip), %rax
+NO-SYM-OPS-EXE: 0000000100000f56 callq 0x100000f6c
diff --git a/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test b/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test
index e4fd37a902c46..260e9aa341e8c 100644
--- a/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test
+++ b/test/tools/llvm-objdump/X86/macho-universal-x86_64.i386.test
@@ -4,6 +4,8 @@ RUN: llvm-objdump %p/Inputs/macho-universal-archive.x86_64.i386 -d -m -no-show-r
RUN: | FileCheck %s -check-prefix UArchive-i386
RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \
RUN: | FileCheck %s -check-prefix FAT
+RUN: llvm-objdump %p/Inputs/macho-universal.x86_64.i386 -universal-headers -m \
+RUN: -non-verbose | FileCheck %s -check-prefix NON-VERBOSE
UEXE-all: macho-universal.x86_64.i386 (architecture x86_64):
UEXE-all: (__TEXT,__text) section
@@ -42,3 +44,21 @@ FAT: capabilities 0x0
FAT: offset 12288
FAT: size 4336
FAT: align 2^12 (4096)
+
+NON-VERBOSE: Fat headers
+NON-VERBOSE: fat_magic 0xcafebabe
+NON-VERBOSE: nfat_arch 2
+NON-VERBOSE: architecture 0
+NON-VERBOSE: cputype 16777223
+NON-VERBOSE: cpusubtype 3
+NON-VERBOSE: capabilities 0x80
+NON-VERBOSE: offset 4096
+NON-VERBOSE: size 4360
+NON-VERBOSE: align 2^12 (4096)
+NON-VERBOSE: architecture 1
+NON-VERBOSE: cputype 7
+NON-VERBOSE: cpusubtype 3
+NON-VERBOSE: capabilities 0x0
+NON-VERBOSE: offset 12288
+NON-VERBOSE: size 4336
+NON-VERBOSE: align 2^12 (4096)
diff --git a/test/tools/llvm-objdump/X86/macho-unwind-info.test b/test/tools/llvm-objdump/X86/macho-unwind-info.test
new file mode 100644
index 0000000000000..33db84fc07d10
--- /dev/null
+++ b/test/tools/llvm-objdump/X86/macho-unwind-info.test
@@ -0,0 +1,7 @@
+RUN: llvm-objdump -macho -u %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s
+
+CHECK: Contents of __compact_unwind section:
+CHECK: Entry at offset 0x0:
+CHECK: start: 0x0 _main
+CHECK: length: 0x3b
+CHECK: compact encoding: 0x01000000
diff --git a/test/tools/llvm-objdump/common-symbol-elf.test b/test/tools/llvm-objdump/common-symbol-elf.test
new file mode 100644
index 0000000000000..32df05ac051b6
--- /dev/null
+++ b/test/tools/llvm-objdump/common-symbol-elf.test
@@ -0,0 +1,3 @@
+// RUN: llvm-objdump -t %p/Inputs/common-symbol-elf | FileCheck %s
+
+CHECK: 00000400 g *COM* 00000008 common_symbol
diff --git a/test/tools/llvm-objdump/macho-sections.test b/test/tools/llvm-objdump/macho-sections.test
new file mode 100644
index 0000000000000..31efd110a5c84
--- /dev/null
+++ b/test/tools/llvm-objdump/macho-sections.test
@@ -0,0 +1,5 @@
+# RUN: llvm-objdump -macho -section=__data %p/Inputs/bind2.macho-x86_64 | FileCheck %s
+# RUN: llvm-objdump -macho -section=__data -raw %p/Inputs/bind2.macho-x86_64 | FileCheck --check-prefix=RAW %s
+
+# CHECK: bind2.macho-x86_64:
+# RAW-NOT: bind2.macho-x86_64:
diff --git a/test/tools/llvm-objdump/proc-specific-section-elf.test b/test/tools/llvm-objdump/proc-specific-section-elf.test
new file mode 100644
index 0000000000000..b3067d49af8e4
--- /dev/null
+++ b/test/tools/llvm-objdump/proc-specific-section-elf.test
@@ -0,0 +1,3 @@
+// RUN: llvm-objdump -t %p/Inputs/proc-specific-section-elf | FileCheck %s
+
+CHECK: 00000000 *UND* 00000000 print