diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
commit | dd58ef019b700900793a1eb48b52123db01b654e (patch) | |
tree | fcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /test/MC/MachO | |
parent | 2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff) |
Notes
Diffstat (limited to 'test/MC/MachO')
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: ] |