317 lines · plain
1// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj --file-headers -S -r --symbols --macho-segment --macho-dysymtab --macho-indirect-symbols - | FileCheck %s2 3// FIXME: We are missing a lot of diagnostics on this kind of stuff which the4// assembler has.5 6 .lazy_symbol_pointer7 .indirect_symbol sym_lsp_B8 .long 09 10 .globl sym_lsp_A11 .indirect_symbol sym_lsp_A12 .long 013 14sym_lsp_C: 15 .indirect_symbol sym_lsp_C16 .long 017 18// FIXME: Enable this test once missing llvm-mc support is in place.19.if 020 .indirect_symbol sym_lsp_D21 .long sym_lsp_D22.endif23 24 .indirect_symbol sym_lsp_E25 .long 0xFA26 27// FIXME: Enable this test once missing llvm-mc support is in place.28.if 029sym_lsp_F = 1030 .indirect_symbol sym_lsp_F31 .long 032.endif33 34 .globl sym_lsp_G35sym_lsp_G:36 .indirect_symbol sym_lsp_G37 .long 038 39 .non_lazy_symbol_pointer40 .indirect_symbol sym_nlp_B41 .long 042 43 .globl sym_nlp_A44 .indirect_symbol sym_nlp_A45 .long 046 47sym_nlp_C: 48 .indirect_symbol sym_nlp_C49 .long 050 51// FIXME: Enable this test once missing llvm-mc support is in place.52.if 053 .indirect_symbol sym_nlp_D54 .long sym_nlp_D55.endif56 57 .indirect_symbol sym_nlp_E58 .long 0xAF59 60// FIXME: Enable this test once missing llvm-mc support is in place.61.if 062sym_nlp_F = 1063 .indirect_symbol sym_nlp_F64 .long 065.endif66 67 .globl sym_nlp_G68sym_nlp_G:69 .indirect_symbol sym_nlp_G70 .long 071 72// CHECK: File: <stdin>73// CHECK: Format: Mach-O 32-bit i38674// CHECK: Arch: i38675// CHECK: AddressSize: 32bit76// CHECK: MachHeader {77// CHECK: Magic: Magic (0xFEEDFACE)78// CHECK: CpuType: X86 (0x7)79// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)80// CHECK: FileType: Relocatable (0x1)81// CHECK: NumOfLoadCommands: 482// CHECK: SizeOfLoadCommands: 38083// CHECK: Flags [ (0x0)84// CHECK: ]85// CHECK: }86// CHECK: Sections [87// CHECK: Section {88// CHECK: Index: 089// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)90// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)91// CHECK: Address: 0x092// CHECK: Size: 0x093// CHECK: Offset: 40894// CHECK: Alignment: 095// CHECK: RelocationOffset: 0x096// CHECK: RelocationCount: 097// CHECK: Type: Regular (0x0)98// CHECK: Attributes [ (0x800000)99// CHECK: PureInstructions (0x800000)100// CHECK: ]101// CHECK: Reserved1: 0x0102// CHECK: Reserved2: 0x0103// CHECK: }104// CHECK: Section {105// CHECK: Index: 1106// CHECK: Name: __la_symbol_ptr (5F 5F 6C 61 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)107// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)108// CHECK: Address: 0x0109// CHECK: Size: 0x14110// CHECK: Offset: 408111// CHECK: Alignment: 2112// CHECK: RelocationOffset: 0x0113// CHECK: RelocationCount: 0114// CHECK: Type: LazySymbolPointers (0x7)115// CHECK: Attributes [ (0x0)116// CHECK: ]117// CHECK: Reserved1: 0x0118// CHECK: Reserved2: 0x0119// CHECK: }120// CHECK: Section {121// CHECK: Index: 2122// CHECK: Name: __nl_symbol_ptr (5F 5F 6E 6C 5F 73 79 6D 62 6F 6C 5F 70 74 72 00)123// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)124// CHECK: Address: 0x14125// CHECK: Size: 0x14126// CHECK: Offset: 428127// CHECK: Alignment: 2128// CHECK: RelocationOffset: 0x0129// CHECK: RelocationCount: 0130// CHECK: Type: NonLazySymbolPointers (0x6)131// CHECK: Attributes [ (0x0)132// CHECK: ]133// CHECK: Reserved1: 0x5134// CHECK: Reserved2: 0x0135// CHECK: }136// CHECK: ]137// CHECK: Relocations [138// CHECK: ]139// CHECK: Symbols [140// CHECK: Symbol {141// CHECK: Name: sym_lsp_C (41)142// CHECK: Type: Section (0xE)143// CHECK: Section: __la_symbol_ptr (0x2)144// CHECK: RefType: UndefinedNonLazy (0x0)145// CHECK: Flags [ (0x0)146// CHECK: ]147// CHECK: Value: 0x8148// CHECK: }149// CHECK: Symbol {150// CHECK: Name: sym_nlp_C (51)151// CHECK: Type: Section (0xE)152// CHECK: Section: __nl_symbol_ptr (0x3)153// CHECK: RefType: UndefinedNonLazy (0x0)154// CHECK: Flags [ (0x0)155// CHECK: ]156// CHECK: Value: 0x1C157// CHECK: }158// CHECK: Symbol {159// CHECK: Name: sym_lsp_G (1)160// CHECK: Extern161// CHECK: Type: Section (0xE)162// CHECK: Section: __la_symbol_ptr (0x2)163// CHECK: RefType: UndefinedNonLazy (0x0)164// CHECK: Flags [ (0x0)165// CHECK: ]166// CHECK: Value: 0x10167// CHECK: }168// CHECK: Symbol {169// CHECK: Name: sym_nlp_G (11)170// CHECK: Extern171// CHECK: Type: Section (0xE)172// CHECK: Section: __nl_symbol_ptr (0x3)173// CHECK: RefType: UndefinedNonLazy (0x0)174// CHECK: Flags [ (0x0)175// CHECK: ]176// CHECK: Value: 0x24177// CHECK: }178// CHECK: Symbol {179// CHECK: Name: sym_lsp_A (81)180// CHECK: Extern181// CHECK: Type: Undef (0x0)182// CHECK: Section: (0x0)183// CHECK: RefType: UndefinedNonLazy (0x0)184// CHECK: Flags [ (0x0)185// CHECK: ]186// CHECK: Value: 0x0187// CHECK: }188// CHECK: Symbol {189// CHECK: Name: sym_lsp_B (61)190// CHECK: Extern191// CHECK: Type: Undef (0x0)192// CHECK: Section: (0x0)193// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)194// CHECK: Flags [ (0x0)195// CHECK: ]196// CHECK: Value: 0x0197// CHECK: }198// CHECK: Symbol {199// CHECK: Name: sym_lsp_E (21)200// CHECK: Extern201// CHECK: Type: Undef (0x0)202// CHECK: Section: (0x0)203// CHECK: RefType: ReferenceFlagUndefinedLazy (0x1)204// CHECK: Flags [ (0x0)205// CHECK: ]206// CHECK: Value: 0x0207// CHECK: }208// CHECK: Symbol {209// CHECK: Name: sym_nlp_A (91)210// CHECK: Extern211// CHECK: Type: Undef (0x0)212// CHECK: Section: (0x0)213// CHECK: RefType: UndefinedNonLazy (0x0)214// CHECK: Flags [ (0x0)215// CHECK: ]216// CHECK: Value: 0x0217// CHECK: }218// CHECK: Symbol {219// CHECK: Name: sym_nlp_B (71)220// CHECK: Extern221// CHECK: Type: Undef (0x0)222// CHECK: Section: (0x0)223// CHECK: RefType: UndefinedNonLazy (0x0)224// CHECK: Flags [ (0x0)225// CHECK: ]226// CHECK: Value: 0x0227// CHECK: }228// CHECK: Symbol {229// CHECK: Name: sym_nlp_E (31)230// CHECK: Extern231// CHECK: Type: Undef (0x0)232// CHECK: Section: (0x0)233// CHECK: RefType: UndefinedNonLazy (0x0)234// CHECK: Flags [ (0x0)235// CHECK: ]236// CHECK: Value: 0x0237// CHECK: }238// CHECK: ]239// CHECK: Indirect Symbols {240// CHECK: Number: 10241// CHECK: Symbols [242// CHECK: Entry {243// CHECK: Entry Index: 0244// CHECK: Symbol Index: 0x5245// CHECK: }246// CHECK: Entry {247// CHECK: Entry Index: 1248// CHECK: Symbol Index: 0x4249// CHECK: }250// CHECK: Entry {251// CHECK: Entry Index: 2252// CHECK: Symbol Index: 0x0253// CHECK: }254// CHECK: Entry {255// CHECK: Entry Index: 3256// CHECK: Symbol Index: 0x6257// CHECK: }258// CHECK: Entry {259// CHECK: Entry Index: 4260// CHECK: Symbol Index: 0x2261// CHECK: }262// CHECK: Entry {263// CHECK: Entry Index: 5264// CHECK: Symbol Index: 0x8265// CHECK: }266// CHECK: Entry {267// CHECK: Entry Index: 6268// CHECK: Symbol Index: 0x7269// CHECK: }270// CHECK: Entry {271// CHECK: Entry Index: 7272// CHECK: Symbol Index: 0x80000000273// CHECK: }274// CHECK: Entry {275// CHECK: Entry Index: 8276// CHECK: Symbol Index: 0x9277// CHECK: }278// CHECK: Entry {279// CHECK: Entry Index: 9280// CHECK: Symbol Index: 0x3281// CHECK: }282// CHECK: ]283// CHECK: }284// CHECK: Segment {285// CHECK: Cmd: LC_SEGMENT286// CHECK: Name: 287// CHECK: Size: 260288// CHECK: vmaddr: 0x0289// CHECK: vmsize: 0x28290// CHECK: fileoff: 408291// CHECK: filesize: 40292// CHECK: maxprot: rwx293// CHECK: initprot: rwx294// CHECK: nsects: 3295// CHECK: flags: 0x0296// CHECK: }297// CHECK: Dysymtab {298// CHECK: ilocalsym: 0299// CHECK: nlocalsym: 2300// CHECK: iextdefsym: 2301// CHECK: nextdefsym: 2302// CHECK: iundefsym: 4303// CHECK: nundefsym: 6304// CHECK: tocoff: 0305// CHECK: ntoc: 0306// CHECK: modtaboff: 0307// CHECK: nmodtab: 0308// CHECK: extrefsymoff: 0309// CHECK: nextrefsyms: 0310// CHECK: indirectsymoff: 448311// CHECK: nindirectsyms: 10312// CHECK: extreloff: 0313// CHECK: nextrel: 0314// CHECK: locreloff: 0315// CHECK: nlocrel: 0316// CHECK: }317