// RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | llvm-readobj --file-headers -S --sd -r --symbols --macho-segment --macho-dysymtab --macho-indirect-symbols - | FileCheck %s
.tdata
_a$tlv$init:
.long 4
.tlv
.globl _a
_a:
.quad __tlv_bootstrap
.quad 0
.quad _a$tlv$init
.text
.globl _foo
.align 4, 0x90
_foo:
movq _a@ , %rdi
call *(%rdi) # returns &a in %rax
ret
// CHECK: File: <stdin>
// CHECK: Format: Mach-O 64-bit x86-64
// CHECK: Arch: x86_64
// CHECK: AddressSize: 64bit
// CHECK: MachHeader {
// CHECK: Magic:
// CHECK: CpuType: X86-64 (0x1000007)
// CHECK: CpuSubType:
// CHECK: FileType:
// CHECK: NumOfLoadCommands: 3
// CHECK: SizeOfLoadCommands: 416
// CHECK: Flags
// CHECK: Reserved: 0x0
// CHECK: }
// CHECK: Sections
// CHECK: Relocations
// CHECK: Symbols
// CHECK: Indirect Symbols {
// CHECK: Number: 0
// CHECK: Symbols
// 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: }