// 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 sym_ref_def_A: sym_ref_def_C: .reference sym_ref_def_C .reference sym_ref_def_D .globl sym_ref_def_D .globl sym_ref_def_E .reference sym_ref_def_E .weak_reference sym_weak_ref_A .weak_reference sym_weak_ref_def_A sym_weak_ref_def_A: sym_weak_ref_def_B: .weak_reference sym_weak_ref_def_B .data .globl sym_weak_def_A .weak_definition sym_weak_def_A sym_weak_def_A: sym_weak_def_B: .weak_definition sym_weak_def_B .globl sym_weak_def_B .weak_definition sym_weak_def_C sym_weak_def_C: .globl sym_weak_def_C .lazy_reference sym_lazy_ref_A .lazy_reference sym_lazy_ref_B sym_lazy_ref_B: sym_lazy_ref_C: .lazy_reference sym_lazy_ref_C .lazy_reference sym_lazy_ref_D .globl sym_lazy_ref_D .globl sym_lazy_ref_E .lazy_reference sym_lazy_ref_E .private_extern sym_private_ext_A .private_extern sym_private_ext_B sym_private_ext_B: sym_private_ext_C: .private_extern sym_private_ext_C .private_extern sym_private_ext_D .globl sym_private_ext_D .globl sym_private_ext_E .private_extern sym_private_ext_E .no_dead_strip sym_no_dead_strip_A sym_symbol_resolver_A: .symbol_resolver sym_symbol_resolver_A .reference sym_ref_A .desc sym_ref_A, 1 .desc sym_ref_A, 0x1234 .desc sym_desc_flags,0x47 sym_desc_flags: // CHECK: File: // 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: }