196 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_text_a:4 xorl %eax,%eax5_text_b:6 xorl %eax,%eax7Ltext_c:8 xorl %eax,%eax9Ltext_d:10 xorl %eax,%eax11 12 movl $(_text_a - _text_b), %eax13Ltext_expr_0 = _text_a - _text_b14 movl $(Ltext_expr_0), %eax15 16 movl $(Ltext_c - _text_b), %eax17Ltext_expr_1 = Ltext_c - _text_b18 movl $(Ltext_expr_1), %eax19 20 movl $(Ltext_d - Ltext_c), %eax21Ltext_expr_2 = Ltext_d - Ltext_c22 movl $(Ltext_expr_2), %eax23 24 movl $(_text_a + Ltext_expr_0), %eax25 26 .data27_data_a:28 .long 029_data_b:30 .long 031Ldata_c:32 .long 033Ldata_d:34 .long 035 36 .long _data_a - _data_b37Ldata_expr_0 = _data_a - _data_b38 .long Ldata_expr_039 40 .long Ldata_c - _data_b41Ldata_expr_1 = Ldata_c - _data_b42 .long Ldata_expr_143 44 .long Ldata_d - Ldata_c45Ldata_expr_2 = Ldata_d - Ldata_c46 .long Ldata_expr_247 48 .long _data_a + Ldata_expr_049 50// CHECK: File: <stdin>51// CHECK: Format: Mach-O 32-bit i38652// CHECK: Arch: i38653// CHECK: AddressSize: 32bit54// CHECK: MachHeader {55// CHECK: Magic: Magic (0xFEEDFACE)56// CHECK: CpuType: X86 (0x7)57// CHECK: CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)58// CHECK: FileType: Relocatable (0x1)59// CHECK: NumOfLoadCommands: 460// CHECK: SizeOfLoadCommands: 31261// CHECK: Flags [ (0x0)62// CHECK: ]63// CHECK: }64// CHECK: Sections [65// CHECK: Section {66// CHECK: Index: 067// CHECK: Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)68// CHECK: Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)69// CHECK: Address: 0x070// CHECK: Size: 0x2B71// CHECK: Offset: 34072// CHECK: Alignment: 073// CHECK: RelocationOffset: 0x1AC74// CHECK: RelocationCount: 375// CHECK: Type: Regular (0x0)76// CHECK: Attributes [ (0x800004)77// CHECK: PureInstructions (0x800000)78// CHECK: SomeInstructions (0x4)79// CHECK: ]80// CHECK: Reserved1: 0x081// CHECK: Reserved2: 0x082// CHECK: SectionData (83// CHECK: 0000: 31C031C0 31C031C0 B8FEFFFF FFB8FEFF |1.1.1.1.........|84// CHECK: 0010: FFFFB802 000000B8 02000000 B8020000 |................|85// CHECK: 0020: 00B80200 0000B8FE FFFFFF |...........|86// CHECK: )87// CHECK: }88// CHECK: Section {89// CHECK: Index: 190// CHECK: Name: __data (5F 5F 64 61 74 61 00 00 00 00 00 00 00 00 00 00)91// CHECK: Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)92// CHECK: Address: 0x2B93// CHECK: Size: 0x2C94// CHECK: Offset: 38395// CHECK: Alignment: 096// CHECK: RelocationOffset: 0x1C497// CHECK: RelocationCount: 198// CHECK: Type: Regular (0x0)99// CHECK: Attributes [ (0x0)100// CHECK: ]101// CHECK: Reserved1: 0x0102// CHECK: Reserved2: 0x0103// CHECK: SectionData (104// CHECK: 0000: 00000000 00000000 00000000 00000000 |................|105// CHECK: 0010: FCFFFFFF FCFFFFFF 04000000 04000000 |................|106// CHECK: 0020: 04000000 04000000 27000000 |........'...|107// CHECK: )108// CHECK: }109// CHECK: ]110// CHECK: Relocations [111// CHECK: Section __text {112// CHECK: 0x27 0 2 n/a GENERIC_RELOC_VANILLA 1 0x0113// CHECK: 0x9 0 2 n/a GENERIC_RELOC_LOCAL_SECTDIFF 1 0x0114// CHECK: 0x0 0 2 n/a GENERIC_RELOC_PAIR 1 0x2115// CHECK: }116// CHECK: Section __data {117// CHECK: 0x28 0 2 n/a GENERIC_RELOC_VANILLA 1 0x2B118// CHECK: }119// CHECK: ]120// CHECK: Symbols [121// CHECK: Symbol {122// CHECK: Name: _text_a (17)123// CHECK: Type: Section (0xE)124// CHECK: Section: __text (0x1)125// CHECK: RefType: UndefinedNonLazy (0x0)126// CHECK: Flags [ (0x0)127// CHECK: ]128// CHECK: Value: 0x0129// CHECK: }130// CHECK: Symbol {131// CHECK: Name: _text_b (1)132// CHECK: Type: Section (0xE)133// CHECK: Section: __text (0x1)134// CHECK: RefType: UndefinedNonLazy (0x0)135// CHECK: Flags [ (0x0)136// CHECK: ]137// CHECK: Value: 0x2138// CHECK: }139// CHECK: Symbol {140// CHECK: Name: _data_a (25)141// CHECK: Type: Section (0xE)142// CHECK: Section: __data (0x2)143// CHECK: RefType: UndefinedNonLazy (0x0)144// CHECK: Flags [ (0x0)145// CHECK: ]146// CHECK: Value: 0x2B147// CHECK: }148// CHECK: Symbol {149// CHECK: Name: _data_b (9)150// CHECK: Type: Section (0xE)151// CHECK: Section: __data (0x2)152// CHECK: RefType: UndefinedNonLazy (0x0)153// CHECK: Flags [ (0x0)154// CHECK: ]155// CHECK: Value: 0x2F156// CHECK: }157// CHECK: ]158// CHECK: Indirect Symbols {159// CHECK: Number: 0160// CHECK: Symbols [161// CHECK: ]162// CHECK: }163// CHECK: Segment {164// CHECK: Cmd: LC_SEGMENT165// CHECK: Name: 166// CHECK: Size: 192167// CHECK: vmaddr: 0x0168// CHECK: vmsize: 0x57169// CHECK: fileoff: 340170// CHECK: filesize: 87171// CHECK: maxprot: rwx172// CHECK: initprot: rwx173// CHECK: nsects: 2174// CHECK: flags: 0x0175// CHECK: }176// CHECK: Dysymtab {177// CHECK: ilocalsym: 0178// CHECK: nlocalsym: 4179// CHECK: iextdefsym: 4180// CHECK: nextdefsym: 0181// CHECK: iundefsym: 4182// CHECK: nundefsym: 0183// CHECK: tocoff: 0184// CHECK: ntoc: 0185// CHECK: modtaboff: 0186// CHECK: nmodtab: 0187// CHECK: extrefsymoff: 0188// CHECK: nextrefsyms: 0189// CHECK: indirectsymoff: 0190// CHECK: nindirectsyms: 0191// CHECK: extreloff: 0192// CHECK: nextrel: 0193// CHECK: locreloff: 0194// CHECK: nlocrel: 0195// CHECK: }196