220 lines · plain
1// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj --file-headers -S --sd -r --symbols --macho-segment --macho-dysymtab --macho-indirect-symbols - | FileCheck %s2 3_b:4 _c = 05_e:6 _f = 07 8 .section __IMPORT,__jump_table,symbol_stubs,pure_instructions+self_modifying_code,59.indirect_symbol _a10 .ascii "\364\364\364\364\364" 11.indirect_symbol _b12 .ascii "\364\364\364\364\364" 13.indirect_symbol _c14 .ascii "\364\364\364\364\364" 15 .section __IMPORT,__pointers,non_lazy_symbol_pointers16.indirect_symbol _d17 .long 018.indirect_symbol _e19 .long 020.indirect_symbol _f21 .long 022 23// CHECK: File: <stdin>24// CHECK: Format: Mach-O 32-bit i38625// CHECK: Arch: i38626// CHECK: AddressSize: 32bit27// CHECK: MachHeader {28// CHECK: Magic: Magic (0xFEEDFACE)29// CHECK: CpuType: X86 (0x7)30// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)31// CHECK: FileType: Relocatable (0x1)32// CHECK: NumOfLoadCommands: 433// CHECK: SizeOfLoadCommands: 38034// CHECK: Flags [ (0x0)35// CHECK: ]36// CHECK: }37// CHECK: Sections [38// CHECK: Section {39// CHECK: Index: 040// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)41// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)42// CHECK: Address: 0x043// CHECK: Size: 0x044// CHECK: Offset: 40845// CHECK: Alignment: 046// CHECK: RelocationOffset: 0x047// CHECK: RelocationCount: 048// CHECK: Type: Regular (0x0)49// CHECK: Attributes [ (0x800000)50// CHECK: PureInstructions (0x800000)51// CHECK: ]52// CHECK: Reserved1: 0x053// CHECK: Reserved2: 0x054// CHECK: SectionData (55// CHECK: )56// CHECK: }57// CHECK: Section {58// CHECK: Index: 159// CHECK: Name: __jump_table (5F 5F 6A 75 6D 70 5F 74 61 62 6C 65 00 00 00 00)60// CHECK: Segment: __IMPORT (5F 5F 49 4D 50 4F 52 54 00 00 00 00 00 00 00 00)61// CHECK: Address: 0x062// CHECK: Size: 0xF63// CHECK: Offset: 40864// CHECK: Alignment: 065// CHECK: RelocationOffset: 0x066// CHECK: RelocationCount: 067// CHECK: Type: SymbolStubs (0x8)68// CHECK: Attributes [ (0x840000)69// CHECK: PureInstructions (0x800000)70// CHECK: SelfModifyingCode (0x40000)71// CHECK: ]72// CHECK: Reserved1: 0x073// CHECK: Reserved2: 0x574// CHECK: SectionData (75// CHECK: 0000: F4F4F4F4 F4F4F4F4 F4F4F4F4 F4F4F4 |...............|76// CHECK: )77// CHECK: }78// CHECK: Section {79// CHECK: Index: 280// CHECK: Name: __pointers (5F 5F 70 6F 69 6E 74 65 72 73 00 00 00 00 00 00)81// CHECK: Segment: __IMPORT (5F 5F 49 4D 50 4F 52 54 00 00 00 00 00 00 00 00)82// CHECK: Address: 0xF83// CHECK: Size: 0xC84// CHECK: Offset: 42385// CHECK: Alignment: 086// CHECK: RelocationOffset: 0x087// CHECK: RelocationCount: 088// CHECK: Type: NonLazySymbolPointers (0x6)89// CHECK: Attributes [ (0x0)90// CHECK: ]91// CHECK: Reserved1: 0x392// CHECK: Reserved2: 0x093// CHECK: SectionData (94// CHECK: 0000: 00000000 00000000 00000000 |............|95// CHECK: )96// CHECK: }97// CHECK: ]98// CHECK: Relocations [99// CHECK: ]100// CHECK: Symbols [101// CHECK: Symbol {102// CHECK: Name: _b (13)103// CHECK: Type: Section (0xE)104// CHECK: Section: __text (0x1)105// CHECK: RefType: UndefinedNonLazy (0x0)106// CHECK: Flags [ (0x0)107// CHECK: ]108// CHECK: Value: 0x0109// CHECK: }110// CHECK: Symbol {111// CHECK: Name: _c (10)112// CHECK: Type: Abs (0x2)113// CHECK: Section: (0x0)114// CHECK: RefType: UndefinedNonLazy (0x0)115// CHECK: Flags [ (0x0)116// CHECK: ]117// CHECK: Value: 0x0118// CHECK: }119// CHECK: Symbol {120// CHECK: Name: _e (4)121// CHECK: Type: Section (0xE)122// CHECK: Section: __text (0x1)123// CHECK: RefType: UndefinedNonLazy (0x0)124// CHECK: Flags [ (0x0)125// CHECK: ]126// CHECK: Value: 0x0127// CHECK: }128// CHECK: Symbol {129// CHECK: Name: _f (1)130// CHECK: Type: Abs (0x2)131// CHECK: Section: (0x0)132// CHECK: RefType: UndefinedNonLazy (0x0)133// CHECK: Flags [ (0x0)134// CHECK: ]135// CHECK: Value: 0x0136// CHECK: }137// CHECK: Symbol {138// CHECK: Name: _a (16)139// CHECK: Extern140// CHECK: Type: Undef (0x0)141// CHECK: Section: (0x0)142// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)143// CHECK: Flags [ (0x0)144// CHECK: ]145// CHECK: Value: 0x0146// CHECK: }147// CHECK: Symbol {148// CHECK: Name: _d (7)149// CHECK: Extern150// CHECK: Type: Undef (0x0)151// CHECK: Section: (0x0)152// CHECK: RefType: UndefinedNonLazy (0x0)153// CHECK: Flags [ (0x0)154// CHECK: ]155// CHECK: Value: 0x0156// CHECK: }157// CHECK: ]158// CHECK: Indirect Symbols {159// CHECK: Number: 6160// CHECK: Symbols [161// CHECK: Entry {162// CHECK: Entry Index: 0163// CHECK: Symbol Index: 0x4164// CHECK: }165// CHECK: Entry {166// CHECK: Entry Index: 1167// CHECK: Symbol Index: 0x0168// CHECK: }169// CHECK: Entry {170// CHECK: Entry Index: 2171// CHECK: Symbol Index: 0x1172// CHECK: }173// CHECK: Entry {174// CHECK: Entry Index: 3175// CHECK: Symbol Index: 0x5176// CHECK: }177// CHECK: Entry {178// CHECK: Entry Index: 4179// CHECK: Symbol Index: 0x80000000180// CHECK: }181// CHECK: Entry {182// CHECK: Entry Index: 5183// CHECK: Symbol Index: 0xC0000000184// CHECK: }185// CHECK: ]186// CHECK: }187// CHECK: Segment {188// CHECK: Cmd: LC_SEGMENT189// CHECK: Name: 190// CHECK: Size: 260191// CHECK: vmaddr: 0x0192// CHECK: vmsize: 0x1B193// CHECK: fileoff: 408194// CHECK: filesize: 27195// CHECK: maxprot: rwx196// CHECK: initprot: rwx197// CHECK: nsects: 3198// CHECK: flags: 0x0199// CHECK: }200// CHECK: Dysymtab {201// CHECK: ilocalsym: 0202// CHECK: nlocalsym: 4203// CHECK: iextdefsym: 4204// CHECK: nextdefsym: 0205// CHECK: iundefsym: 4206// CHECK: nundefsym: 2207// CHECK: tocoff: 0208// CHECK: ntoc: 0209// CHECK: modtaboff: 0210// CHECK: nmodtab: 0211// CHECK: extrefsymoff: 0212// CHECK: nextrefsyms: 0213// CHECK: indirectsymoff: 436214// CHECK: nindirectsyms: 6215// CHECK: extreloff: 0216// CHECK: nextrel: 0217// CHECK: locreloff: 0218// CHECK: nlocrel: 0219// CHECK: }220