// RUN: llvm-mc -triple i386-apple-darwin10 %s -filetype=obj -o %t.o
// RUN: llvm-readobj --file-headers -S --sd -r --symbols --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: llvm-readobj --file-headers -S --sd -r --symbols --macho-segment --macho-dysymtab --macho-indirect-symbols < %t.o - > %t.dump
// RUN: FileCheck --check-prefix=CHECK-X86_64 < %t.dump %s
.data
.long 0
a:
.long 0
b = a
c: .long b
d2 = d
.globl d2
d3 = d + 4
.globl d3
e = a + 4
g:
f = g
.long 0
.long b
.long e
.long a + 4
.long d
.long d2
.long d3
.long f
.long g
///
.text
t0:
Lt0_a:
ret
.data
Lt0_b:
Lt0_x = Lt0_a - Lt0_b
.quad Lt0_x
// 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:
// CHECK-I386: CpuType:
// CHECK-I386: CpuSubType:
// CHECK-I386: FileType:
// CHECK-I386: NumOfLoadCommands: 4
// CHECK-I386: SizeOfLoadCommands: 312
// CHECK-I386: Flags
// CHECK-I386: }
// CHECK-I386: Sections
// CHECK-I386: Relocations
// CHECK-I386: Symbols
// CHECK-I386: Indirect Symbols {
// CHECK-I386: Number: 0
// CHECK-I386: Symbols
// 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: 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:
// CHECK-X86_64: CpuType: X86-64 (0x1000007)
// CHECK-X86_64: CpuSubType:
// CHECK-X86_64: FileType:
// CHECK-X86_64: NumOfLoadCommands: 4
// CHECK-X86_64: SizeOfLoadCommands: 352
// CHECK-X86_64: Flags
// CHECK-X86_64: Reserved: 0x0
// CHECK-X86_64: }
// CHECK-X86_64: Sections
// CHECK-X86_64: Relocations
// CHECK-X86_64: Symbols
// CHECK-X86_64: Indirect Symbols {
// CHECK-X86_64: Number: 0
// CHECK-X86_64: Symbols
// 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: }