1// 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 -check-prefix CHECK-X86_32 %s 2// RUN: llvm-mc -triple x86_64-apple-darwin10 %s -filetype=obj -o - | llvm-readobj -file-headers -s -r -t -macho-segment -macho-dysymtab -macho-indirect-symbols | FileCheck -check-prefix CHECK-X86_64 %s 3 4sym_local_B: 5.globl sym_globl_def_B 6.globl sym_globl_undef_B 7sym_local_A: 8.globl sym_globl_def_A 9.globl sym_globl_undef_A 10sym_local_C: 11.globl sym_globl_def_C 12.globl sym_globl_undef_C 13 14sym_globl_def_A: 15sym_globl_def_B: 16sym_globl_def_C: 17Lsym_asm_temp: 18 .long 0 19 20// CHECK-X86_32: File: <stdin> 21// CHECK-X86_32: Format: Mach-O 32-bit i386 22// CHECK-X86_32: Arch: i386 23// CHECK-X86_32: AddressSize: 32bit 24// 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: 4 30// CHECK-X86_32: SizeOfLoadCommands: 244 31// 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: 0 37// 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: 0x0 40// CHECK-X86_32: Size: 0x4 41// CHECK-X86_32: Offset: 272 42// CHECK-X86_32: Alignment: 0 43// CHECK-X86_32: RelocationOffset: 0x0 44// CHECK-X86_32: RelocationCount: 0 45// CHECK-X86_32: Type: 0x0 46// CHECK-X86_32: Attributes [ (0x800000) 47// CHECK-X86_32: PureInstructions (0x800000) 48// CHECK-X86_32: ] 49// CHECK-X86_32: Reserved1: 0x0 50// CHECK-X86_32: Reserved2: 0x0 51// 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: 0x0 64// 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: 0x0 73// 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: 0x0 82// CHECK-X86_32: } 83// CHECK-X86_32: Symbol { 84// CHECK-X86_32: Name: sym_globl_def_A (123) 85// CHECK-X86_32: Extern 86// 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: 0x0 92// CHECK-X86_32: } 93// CHECK-X86_32: Symbol { 94// CHECK-X86_32: Name: sym_globl_def_B (77) 95// CHECK-X86_32: Extern 96// 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: 0x0 102// CHECK-X86_32: } 103// CHECK-X86_32: Symbol { 104// CHECK-X86_32: Name: sym_globl_def_C (31) 105// CHECK-X86_32: Extern 106// 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: 0x0 112// CHECK-X86_32: } 113// CHECK-X86_32: Symbol { 114// CHECK-X86_32: Name: sym_globl_undef_A (105) 115// CHECK-X86_32: Extern 116// 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: 0x0 122// CHECK-X86_32: } 123// CHECK-X86_32: Symbol { 124// CHECK-X86_32: Name: sym_globl_undef_B (59) 125// CHECK-X86_32: Extern 126// 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: 0x0 132// CHECK-X86_32: } 133// CHECK-X86_32: Symbol { 134// CHECK-X86_32: Name: sym_globl_undef_C (13) 135// CHECK-X86_32: Extern 136// 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: 0x0 142// CHECK-X86_32: } 143// CHECK-X86_32: ] 144// CHECK-X86_32: Indirect Symbols { 145// CHECK-X86_32: Number: 0 146// CHECK-X86_32: Symbols [ 147// CHECK-X86_32: ] 148// CHECK-X86_32: } 149// CHECK-X86_32: Segment { 150// CHECK-X86_32: Cmd: LC_SEGMENT 151// CHECK-X86_32: Name: 152// CHECK-X86_32: Size: 124 153// CHECK-X86_32: vmaddr: 0x0 154// CHECK-X86_32: vmsize: 0x4 155// CHECK-X86_32: fileoff: 272 156// CHECK-X86_32: filesize: 4 157// CHECK-X86_32: maxprot: rwx 158// CHECK-X86_32: initprot: rwx 159// CHECK-X86_32: nsects: 1 160// CHECK-X86_32: flags: 0x0 161// CHECK-X86_32: } 162// CHECK-X86_32: Dysymtab { 163// CHECK-X86_32: ilocalsym: 0 164// CHECK-X86_32: nlocalsym: 3 165// CHECK-X86_32: iextdefsym: 3 166// CHECK-X86_32: nextdefsym: 3 167// CHECK-X86_32: iundefsym: 6 168// CHECK-X86_32: nundefsym: 3 169// CHECK-X86_32: tocoff: 0 170// CHECK-X86_32: ntoc: 0 171// CHECK-X86_32: modtaboff: 0 172// CHECK-X86_32: nmodtab: 0 173// CHECK-X86_32: extrefsymoff: 0 174// CHECK-X86_32: nextrefsyms: 0 175// CHECK-X86_32: indirectsymoff: 0 176// CHECK-X86_32: nindirectsyms: 0 177// CHECK-X86_32: extreloff: 0 178// CHECK-X86_32: nextrel: 0 179// CHECK-X86_32: locreloff: 0 180// CHECK-X86_32: nlocrel: 0 181// CHECK-X86_32: } 182 183// CHECK-X86_64: File: <stdin> 184// CHECK-X86_64: Format: Mach-O 64-bit x86-64 185// CHECK-X86_64: Arch: x86_64 186// CHECK-X86_64: AddressSize: 64bit 187// 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: 4 193// CHECK-X86_64: SizeOfLoadCommands: 272 194// CHECK-X86_64: Flags [ (0x0) 195// CHECK-X86_64: ] 196// CHECK-X86_64: Reserved: 0x0 197// CHECK-X86_64: } 198// CHECK-X86_64: Sections [ 199// CHECK-X86_64: Section { 200// CHECK-X86_64: Index: 0 201// 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: 0x0 204// CHECK-X86_64: Size: 0x4 205// CHECK-X86_64: Offset: 304 206// CHECK-X86_64: Alignment: 0 207// CHECK-X86_64: RelocationOffset: 0x0 208// CHECK-X86_64: RelocationCount: 0 209// CHECK-X86_64: Type: 0x0 210// CHECK-X86_64: Attributes [ (0x800000) 211// CHECK-X86_64: PureInstructions (0x800000) 212// CHECK-X86_64: ] 213// CHECK-X86_64: Reserved1: 0x0 214// CHECK-X86_64: Reserved2: 0x0 215// CHECK-X86_64: Reserved3: 0x0 216// 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: 0x0 229// 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: 0x0 238// 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: 0x0 247// CHECK-X86_64: } 248// CHECK-X86_64: Symbol { 249// CHECK-X86_64: Name: sym_globl_def_A (123) 250// CHECK-X86_64: Extern 251// 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: 0x0 257// CHECK-X86_64: } 258// CHECK-X86_64: Symbol { 259// CHECK-X86_64: Name: sym_globl_def_B (77) 260// CHECK-X86_64: Extern 261// 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: 0x0 267// CHECK-X86_64: } 268// CHECK-X86_64: Symbol { 269// CHECK-X86_64: Name: sym_globl_def_C (31) 270// CHECK-X86_64: Extern 271// 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: 0x0 277// CHECK-X86_64: } 278// CHECK-X86_64: Symbol { 279// CHECK-X86_64: Name: sym_globl_undef_A (105) 280// CHECK-X86_64: Extern 281// 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: 0x0 287// CHECK-X86_64: } 288// CHECK-X86_64: Symbol { 289// CHECK-X86_64: Name: sym_globl_undef_B (59) 290// CHECK-X86_64: Extern 291// 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: 0x0 297// CHECK-X86_64: } 298// CHECK-X86_64: Symbol { 299// CHECK-X86_64: Name: sym_globl_undef_C (13) 300// CHECK-X86_64: Extern 301// 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: 0x0 307// CHECK-X86_64: } 308// CHECK-X86_64: ] 309// CHECK-X86_64: Indirect Symbols { 310// CHECK-X86_64: Number: 0 311// CHECK-X86_64: Symbols [ 312// CHECK-X86_64: ] 313// CHECK-X86_64: } 314// CHECK-X86_64: Segment { 315// CHECK-X86_64: Cmd: LC_SEGMENT_64 316// CHECK-X86_64: Name: 317// CHECK-X86_64: Size: 152 318// CHECK-X86_64: vmaddr: 0x0 319// CHECK-X86_64: vmsize: 0x4 320// CHECK-X86_64: fileoff: 304 321// CHECK-X86_64: filesize: 4 322// CHECK-X86_64: maxprot: rwx 323// CHECK-X86_64: initprot: rwx 324// CHECK-X86_64: nsects: 1 325// CHECK-X86_64: flags: 0x0 326// CHECK-X86_64: } 327// CHECK-X86_64: Dysymtab { 328// CHECK-X86_64: ilocalsym: 0 329// CHECK-X86_64: nlocalsym: 3 330// CHECK-X86_64: iextdefsym: 3 331// CHECK-X86_64: nextdefsym: 3 332// CHECK-X86_64: iundefsym: 6 333// CHECK-X86_64: nundefsym: 3 334// CHECK-X86_64: tocoff: 0 335// CHECK-X86_64: ntoc: 0 336// CHECK-X86_64: modtaboff: 0 337// CHECK-X86_64: nmodtab: 0 338// CHECK-X86_64: extrefsymoff: 0 339// CHECK-X86_64: nextrefsyms: 0 340// CHECK-X86_64: indirectsymoff: 0 341// CHECK-X86_64: nindirectsyms: 0 342// CHECK-X86_64: extreloff: 0 343// CHECK-X86_64: nextrel: 0 344// CHECK-X86_64: locreloff: 0 345// CHECK-X86_64: nlocrel: 0 346// CHECK-X86_64: } 347