347 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 -check-prefix CHECK-X86_32 %s2// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj --file-headers -S -r --symbols --macho-segment --macho-dysymtab --macho-indirect-symbols - | FileCheck -check-prefix CHECK-X86_64 %s3 4sym_local_B:5.globl sym_globl_def_B6.globl sym_globl_undef_B7sym_local_A:8.globl sym_globl_def_A9.globl sym_globl_undef_A10sym_local_C:11.globl sym_globl_def_C12.globl sym_globl_undef_C13 14sym_globl_def_A: 15sym_globl_def_B: 16sym_globl_def_C: 17Lsym_asm_temp:18 .long 019 20// CHECK-X86_32: File: <stdin>21// CHECK-X86_32: Format: Mach-O 32-bit i38622// CHECK-X86_32: Arch: i38623// CHECK-X86_32: AddressSize: 32bit24// CHECK-X86_32: MachHeader {25// CHECK-X86_32: Magic: Magic (0xFEEDFACE)26// CHECK-X86_32: CpuType: X86 (0x7)27// CHECK-X86_32: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)28// CHECK-X86_32: FileType: Relocatable (0x1)29// CHECK-X86_32: NumOfLoadCommands: 430// CHECK-X86_32: SizeOfLoadCommands: 24431// CHECK-X86_32: Flags [ (0x0)32// CHECK-X86_32: ]33// CHECK-X86_32: }34// CHECK-X86_32: Sections [35// CHECK-X86_32: Section {36// CHECK-X86_32: Index: 037// CHECK-X86_32: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)38// CHECK-X86_32: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)39// CHECK-X86_32: Address: 0x040// CHECK-X86_32: Size: 0x441// CHECK-X86_32: Offset: 27242// CHECK-X86_32: Alignment: 043// CHECK-X86_32: RelocationOffset: 0x044// CHECK-X86_32: RelocationCount: 045// CHECK-X86_32: Type: Regular (0x0)46// CHECK-X86_32: Attributes [ (0x800000)47// CHECK-X86_32: PureInstructions (0x800000)48// CHECK-X86_32: ]49// CHECK-X86_32: Reserved1: 0x050// CHECK-X86_32: Reserved2: 0x051// CHECK-X86_32: }52// CHECK-X86_32: ]53// CHECK-X86_32: Relocations [54// CHECK-X86_32: ]55// CHECK-X86_32: Symbols [56// CHECK-X86_32: Symbol {57// CHECK-X86_32: Name: sym_local_B (47)58// CHECK-X86_32: Type: Section (0xE)59// CHECK-X86_32: Section: __text (0x1)60// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)61// CHECK-X86_32: Flags [ (0x0)62// CHECK-X86_32: ]63// CHECK-X86_32: Value: 0x064// CHECK-X86_32: }65// CHECK-X86_32: Symbol {66// CHECK-X86_32: Name: sym_local_A (93)67// CHECK-X86_32: Type: Section (0xE)68// CHECK-X86_32: Section: __text (0x1)69// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)70// CHECK-X86_32: Flags [ (0x0)71// CHECK-X86_32: ]72// CHECK-X86_32: Value: 0x073// CHECK-X86_32: }74// CHECK-X86_32: Symbol {75// CHECK-X86_32: Name: sym_local_C (1)76// CHECK-X86_32: Type: Section (0xE)77// CHECK-X86_32: Section: __text (0x1)78// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)79// CHECK-X86_32: Flags [ (0x0)80// CHECK-X86_32: ]81// CHECK-X86_32: Value: 0x082// CHECK-X86_32: }83// CHECK-X86_32: Symbol {84// CHECK-X86_32: Name: sym_globl_def_A (123)85// CHECK-X86_32: Extern86// CHECK-X86_32: Type: Section (0xE)87// CHECK-X86_32: Section: __text (0x1)88// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)89// CHECK-X86_32: Flags [ (0x0)90// CHECK-X86_32: ]91// CHECK-X86_32: Value: 0x092// CHECK-X86_32: }93// CHECK-X86_32: Symbol {94// CHECK-X86_32: Name: sym_globl_def_B (77)95// CHECK-X86_32: Extern96// CHECK-X86_32: Type: Section (0xE)97// CHECK-X86_32: Section: __text (0x1)98// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)99// CHECK-X86_32: Flags [ (0x0)100// CHECK-X86_32: ]101// CHECK-X86_32: Value: 0x0102// CHECK-X86_32: }103// CHECK-X86_32: Symbol {104// CHECK-X86_32: Name: sym_globl_def_C (31)105// CHECK-X86_32: Extern106// CHECK-X86_32: Type: Section (0xE)107// CHECK-X86_32: Section: __text (0x1)108// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)109// CHECK-X86_32: Flags [ (0x0)110// CHECK-X86_32: ]111// CHECK-X86_32: Value: 0x0112// CHECK-X86_32: }113// CHECK-X86_32: Symbol {114// CHECK-X86_32: Name: sym_globl_undef_A (105)115// CHECK-X86_32: Extern116// CHECK-X86_32: Type: Undef (0x0)117// CHECK-X86_32: Section: (0x0)118// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)119// CHECK-X86_32: Flags [ (0x0)120// CHECK-X86_32: ]121// CHECK-X86_32: Value: 0x0122// CHECK-X86_32: }123// CHECK-X86_32: Symbol {124// CHECK-X86_32: Name: sym_globl_undef_B (59)125// CHECK-X86_32: Extern126// CHECK-X86_32: Type: Undef (0x0)127// CHECK-X86_32: Section: (0x0)128// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)129// CHECK-X86_32: Flags [ (0x0)130// CHECK-X86_32: ]131// CHECK-X86_32: Value: 0x0132// CHECK-X86_32: }133// CHECK-X86_32: Symbol {134// CHECK-X86_32: Name: sym_globl_undef_C (13)135// CHECK-X86_32: Extern136// CHECK-X86_32: Type: Undef (0x0)137// CHECK-X86_32: Section: (0x0)138// CHECK-X86_32: RefType: UndefinedNonLazy (0x0)139// CHECK-X86_32: Flags [ (0x0)140// CHECK-X86_32: ]141// CHECK-X86_32: Value: 0x0142// CHECK-X86_32: }143// CHECK-X86_32: ]144// CHECK-X86_32: Indirect Symbols {145// CHECK-X86_32: Number: 0146// CHECK-X86_32: Symbols [147// CHECK-X86_32: ]148// CHECK-X86_32: }149// CHECK-X86_32: Segment {150// CHECK-X86_32: Cmd: LC_SEGMENT151// CHECK-X86_32: Name: 152// CHECK-X86_32: Size: 124153// CHECK-X86_32: vmaddr: 0x0154// CHECK-X86_32: vmsize: 0x4155// CHECK-X86_32: fileoff: 272156// CHECK-X86_32: filesize: 4157// CHECK-X86_32: maxprot: rwx158// CHECK-X86_32: initprot: rwx159// CHECK-X86_32: nsects: 1160// CHECK-X86_32: flags: 0x0161// CHECK-X86_32: }162// CHECK-X86_32: Dysymtab {163// CHECK-X86_32: ilocalsym: 0164// CHECK-X86_32: nlocalsym: 3165// CHECK-X86_32: iextdefsym: 3166// CHECK-X86_32: nextdefsym: 3167// CHECK-X86_32: iundefsym: 6168// CHECK-X86_32: nundefsym: 3169// CHECK-X86_32: tocoff: 0170// CHECK-X86_32: ntoc: 0171// CHECK-X86_32: modtaboff: 0172// CHECK-X86_32: nmodtab: 0173// CHECK-X86_32: extrefsymoff: 0174// CHECK-X86_32: nextrefsyms: 0175// CHECK-X86_32: indirectsymoff: 0176// CHECK-X86_32: nindirectsyms: 0177// CHECK-X86_32: extreloff: 0178// CHECK-X86_32: nextrel: 0179// CHECK-X86_32: locreloff: 0180// CHECK-X86_32: nlocrel: 0181// CHECK-X86_32: }182 183// CHECK-X86_64: File: <stdin>184// CHECK-X86_64: Format: Mach-O 64-bit x86-64185// CHECK-X86_64: Arch: x86_64186// CHECK-X86_64: AddressSize: 64bit187// CHECK-X86_64: MachHeader {188// CHECK-X86_64: Magic: Magic64 (0xFEEDFACF)189// CHECK-X86_64: CpuType: X86-64 (0x1000007)190// CHECK-X86_64: CpuSubType: CPU_SUBTYPE_X86_64_ALL (0x3)191// CHECK-X86_64: FileType: Relocatable (0x1)192// CHECK-X86_64: NumOfLoadCommands: 4193// CHECK-X86_64: SizeOfLoadCommands: 272194// CHECK-X86_64: Flags [ (0x0)195// CHECK-X86_64: ]196// CHECK-X86_64: Reserved: 0x0197// CHECK-X86_64: }198// CHECK-X86_64: Sections [199// CHECK-X86_64: Section {200// CHECK-X86_64: Index: 0201// CHECK-X86_64: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)202// CHECK-X86_64: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)203// CHECK-X86_64: Address: 0x0204// CHECK-X86_64: Size: 0x4205// CHECK-X86_64: Offset: 304206// CHECK-X86_64: Alignment: 0207// CHECK-X86_64: RelocationOffset: 0x0208// CHECK-X86_64: RelocationCount: 0209// CHECK-X86_64: Type: Regular (0x0)210// CHECK-X86_64: Attributes [ (0x800000)211// CHECK-X86_64: PureInstructions (0x800000)212// CHECK-X86_64: ]213// CHECK-X86_64: Reserved1: 0x0214// CHECK-X86_64: Reserved2: 0x0215// CHECK-X86_64: Reserved3: 0x0216// CHECK-X86_64: }217// CHECK-X86_64: ]218// CHECK-X86_64: Relocations [219// CHECK-X86_64: ]220// CHECK-X86_64: Symbols [221// CHECK-X86_64: Symbol {222// CHECK-X86_64: Name: sym_local_B (47)223// CHECK-X86_64: Type: Section (0xE)224// CHECK-X86_64: Section: __text (0x1)225// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)226// CHECK-X86_64: Flags [ (0x0)227// CHECK-X86_64: ]228// CHECK-X86_64: Value: 0x0229// CHECK-X86_64: }230// CHECK-X86_64: Symbol {231// CHECK-X86_64: Name: sym_local_A (93)232// CHECK-X86_64: Type: Section (0xE)233// CHECK-X86_64: Section: __text (0x1)234// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)235// CHECK-X86_64: Flags [ (0x0)236// CHECK-X86_64: ]237// CHECK-X86_64: Value: 0x0238// CHECK-X86_64: }239// CHECK-X86_64: Symbol {240// CHECK-X86_64: Name: sym_local_C (1)241// CHECK-X86_64: Type: Section (0xE)242// CHECK-X86_64: Section: __text (0x1)243// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)244// CHECK-X86_64: Flags [ (0x0)245// CHECK-X86_64: ]246// CHECK-X86_64: Value: 0x0247// CHECK-X86_64: }248// CHECK-X86_64: Symbol {249// CHECK-X86_64: Name: sym_globl_def_A (123)250// CHECK-X86_64: Extern251// CHECK-X86_64: Type: Section (0xE)252// CHECK-X86_64: Section: __text (0x1)253// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)254// CHECK-X86_64: Flags [ (0x0)255// CHECK-X86_64: ]256// CHECK-X86_64: Value: 0x0257// CHECK-X86_64: }258// CHECK-X86_64: Symbol {259// CHECK-X86_64: Name: sym_globl_def_B (77)260// CHECK-X86_64: Extern261// CHECK-X86_64: Type: Section (0xE)262// CHECK-X86_64: Section: __text (0x1)263// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)264// CHECK-X86_64: Flags [ (0x0)265// CHECK-X86_64: ]266// CHECK-X86_64: Value: 0x0267// CHECK-X86_64: }268// CHECK-X86_64: Symbol {269// CHECK-X86_64: Name: sym_globl_def_C (31)270// CHECK-X86_64: Extern271// CHECK-X86_64: Type: Section (0xE)272// CHECK-X86_64: Section: __text (0x1)273// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)274// CHECK-X86_64: Flags [ (0x0)275// CHECK-X86_64: ]276// CHECK-X86_64: Value: 0x0277// CHECK-X86_64: }278// CHECK-X86_64: Symbol {279// CHECK-X86_64: Name: sym_globl_undef_A (105)280// CHECK-X86_64: Extern281// CHECK-X86_64: Type: Undef (0x0)282// CHECK-X86_64: Section: (0x0)283// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)284// CHECK-X86_64: Flags [ (0x0)285// CHECK-X86_64: ]286// CHECK-X86_64: Value: 0x0287// CHECK-X86_64: }288// CHECK-X86_64: Symbol {289// CHECK-X86_64: Name: sym_globl_undef_B (59)290// CHECK-X86_64: Extern291// CHECK-X86_64: Type: Undef (0x0)292// CHECK-X86_64: Section: (0x0)293// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)294// CHECK-X86_64: Flags [ (0x0)295// CHECK-X86_64: ]296// CHECK-X86_64: Value: 0x0297// CHECK-X86_64: }298// CHECK-X86_64: Symbol {299// CHECK-X86_64: Name: sym_globl_undef_C (13)300// CHECK-X86_64: Extern301// CHECK-X86_64: Type: Undef (0x0)302// CHECK-X86_64: Section: (0x0)303// CHECK-X86_64: RefType: UndefinedNonLazy (0x0)304// CHECK-X86_64: Flags [ (0x0)305// CHECK-X86_64: ]306// CHECK-X86_64: Value: 0x0307// CHECK-X86_64: }308// CHECK-X86_64: ]309// CHECK-X86_64: Indirect Symbols {310// CHECK-X86_64: Number: 0311// CHECK-X86_64: Symbols [312// CHECK-X86_64: ]313// CHECK-X86_64: }314// CHECK-X86_64: Segment {315// CHECK-X86_64: Cmd: LC_SEGMENT_64316// CHECK-X86_64: Name: 317// CHECK-X86_64: Size: 152318// CHECK-X86_64: vmaddr: 0x0319// CHECK-X86_64: vmsize: 0x4320// CHECK-X86_64: fileoff: 304321// CHECK-X86_64: filesize: 4322// CHECK-X86_64: maxprot: rwx323// CHECK-X86_64: initprot: rwx324// CHECK-X86_64: nsects: 1325// CHECK-X86_64: flags: 0x0326// CHECK-X86_64: }327// CHECK-X86_64: Dysymtab {328// CHECK-X86_64: ilocalsym: 0329// CHECK-X86_64: nlocalsym: 3330// CHECK-X86_64: iextdefsym: 3331// CHECK-X86_64: nextdefsym: 3332// CHECK-X86_64: iundefsym: 6333// CHECK-X86_64: nundefsym: 3334// CHECK-X86_64: tocoff: 0335// CHECK-X86_64: ntoc: 0336// CHECK-X86_64: modtaboff: 0337// CHECK-X86_64: nmodtab: 0338// CHECK-X86_64: extrefsymoff: 0339// CHECK-X86_64: nextrefsyms: 0340// CHECK-X86_64: indirectsymoff: 0341// CHECK-X86_64: nindirectsyms: 0342// CHECK-X86_64: extreloff: 0343// CHECK-X86_64: nextrel: 0344// CHECK-X86_64: locreloff: 0345// CHECK-X86_64: nlocrel: 0346// CHECK-X86_64: }347