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 %s
2
3	.section	__DATA,__datacoal_nt,coalesced
4	.section	__TEXT,__const_coal,coalesced
5	.globl	__ZTS3optIbE            ## @_ZTS3optIbE
6	.weak_definition	__ZTS3optIbE
7__ZTS3optIbE:
8
9
10	.section	__DATA,__datacoal_nt,coalesced
11	.globl	__ZTI3optIbE            ## @_ZTI3optIbE
12	.weak_definition	__ZTI3optIbE
13
14__ZTI3optIbE:
15	.long	__ZTS3optIbE
16
17// CHECK: File: <stdin>
18// CHECK-NEXT: Format: Mach-O 32-bit i386
19// CHECK-NEXT: Arch: i386
20// CHECK-NEXT: AddressSize: 32bit
21// CHECK-NEXT: MachHeader {
22// CHECK-NEXT:   Magic: Magic (0xFEEDFACE)
23// CHECK-NEXT:   CpuType: X86 (0x7)
24// CHECK-NEXT:   CpuSubType: CPU_SUBTYPE_I386_ALL (0x3)
25// CHECK-NEXT:   FileType: Relocatable (0x1)
26// CHECK-NEXT:   NumOfLoadCommands: 4
27// CHECK-NEXT:   SizeOfLoadCommands: 380
28// CHECK-NEXT:   Flags [ (0x0)
29// CHECK-NEXT:   ]
30// CHECK-NEXT: }
31// CHECK-NEXT: Sections [
32// CHECK-NEXT:   Section {
33// CHECK-NEXT:     Index: 0
34// CHECK-NEXT:     Name: __text (5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00)
35// CHECK-NEXT:     Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
36// CHECK-NEXT:     Address: 0x0
37// CHECK-NEXT:     Size: 0x0
38// CHECK-NEXT:     Offset: 408
39// CHECK-NEXT:     Alignment: 0
40// CHECK-NEXT:     RelocationOffset: 0x0
41// CHECK-NEXT:     RelocationCount: 0
42// CHECK-NEXT:     Type: 0x0
43// CHECK-NEXT:     Attributes [ (0x800000)
44// CHECK-NEXT:       PureInstructions (0x800000)
45// CHECK-NEXT:     ]
46// CHECK-NEXT:     Reserved1: 0x0
47// CHECK-NEXT:     Reserved2: 0x0
48// CHECK-NEXT:     SectionData (
49// CHECK-NEXT:     )
50// CHECK-NEXT:   }
51// CHECK-NEXT:   Section {
52// CHECK-NEXT:     Index: 1
53// CHECK-NEXT:     Name: __datacoal_nt (5F 5F 64 61 74 61 63 6F 61 6C 5F 6E 74 00 00 00)
54// CHECK-NEXT:     Segment: __DATA (5F 5F 44 41 54 41 00 00 00 00 00 00 00 00 00 00)
55// CHECK-NEXT:     Address: 0x0
56// CHECK-NEXT:     Size: 0x4
57// CHECK-NEXT:     Offset: 408
58// CHECK-NEXT:     Alignment: 0
59// CHECK-NEXT:     RelocationOffset: 0x19C
60// CHECK-NEXT:     RelocationCount: 1
61// CHECK-NEXT:     Type: 0xB
62// CHECK-NEXT:     Attributes [ (0x0)
63// CHECK-NEXT:     ]
64// CHECK-NEXT:     Reserved1: 0x0
65// CHECK-NEXT:     Reserved2: 0x0
66// CHECK-NEXT:     SectionData (
67// CHECK-NEXT:       0000: 00000000                             |....|
68// CHECK-NEXT:     )
69// CHECK-NEXT:   }
70// CHECK-NEXT:   Section {
71// CHECK-NEXT:     Index: 2
72// CHECK-NEXT:     Name: __const_coal (5F 5F 63 6F 6E 73 74 5F 63 6F 61 6C 00 00 00 00)
73// CHECK-NEXT:     Segment: __TEXT (5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00)
74// CHECK-NEXT:     Address: 0x4
75// CHECK-NEXT:     Size: 0x0
76// CHECK-NEXT:     Offset: 412
77// CHECK-NEXT:     Alignment: 0
78// CHECK-NEXT:     RelocationOffset: 0x0
79// CHECK-NEXT:     RelocationCount: 0
80// CHECK-NEXT:     Type: 0xB
81// CHECK-NEXT:     Attributes [ (0x0)
82// CHECK-NEXT:     ]
83// CHECK-NEXT:     Reserved1: 0x0
84// CHECK-NEXT:     Reserved2: 0x0
85// CHECK-NEXT:     SectionData (
86// CHECK-NEXT:     )
87// CHECK-NEXT:   }
88// CHECK-NEXT: ]
89// CHECK-NEXT: Relocations [
90// CHECK-NEXT:   Section __datacoal_nt {
91// CHECK-NEXT:     0x0 0 2 1 GENERIC_RELOC_VANILLA 0 __ZTS3optIbE
92// CHECK-NEXT:   }
93// CHECK-NEXT: ]
94// CHECK-NEXT: Symbols [
95// CHECK-NEXT:   Symbol {
96// CHECK-NEXT:     Name: __ZTI3optIbE (14)
97// CHECK-NEXT:     Extern
98// CHECK-NEXT:     Type: Section (0xE)
99// CHECK-NEXT:     Section: __datacoal_nt (0x2)
100// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
101// CHECK-NEXT:     Flags [ (0x80)
102// CHECK-NEXT:       WeakDef (0x80)
103// CHECK-NEXT:     ]
104// CHECK-NEXT:     Value: 0x0
105// CHECK-NEXT:   }
106// CHECK-NEXT:   Symbol {
107// CHECK-NEXT:     Name: __ZTS3optIbE (1)
108// CHECK-NEXT:     Extern
109// CHECK-NEXT:     Type: Section (0xE)
110// CHECK-NEXT:     Section: __const_coal (0x3)
111// CHECK-NEXT:     RefType: UndefinedNonLazy (0x0)
112// CHECK-NEXT:     Flags [ (0x80)
113// CHECK-NEXT:       WeakDef (0x80)
114// CHECK-NEXT:     ]
115// CHECK-NEXT:     Value: 0x4
116// CHECK-NEXT:   }
117// CHECK-NEXT: ]
118// CHECK-NEXT: Indirect Symbols {
119// CHECK-NEXT:   Number: 0
120// CHECK-NEXT:   Symbols [
121// CHECK-NEXT:   ]
122// CHECK-NEXT: }
123// CHECK-NEXT: Segment {
124// CHECK-NEXT:   Cmd: LC_SEGMENT
125// CHECK-NEXT:   Name:
126// CHECK-NEXT:   Size: 260
127// CHECK-NEXT:   vmaddr: 0x0
128// CHECK-NEXT:   vmsize: 0x4
129// CHECK-NEXT:   fileoff: 408
130// CHECK-NEXT:   filesize: 4
131// CHECK-NEXT:   maxprot: rwx
132// CHECK-NEXT:   initprot: rwx
133// CHECK-NEXT:   nsects: 3
134// CHECK-NEXT:   flags: 0x0
135// CHECK-NEXT: }
136// CHECK-NEXT: Dysymtab {
137// CHECK-NEXT:   ilocalsym: 0
138// CHECK-NEXT:   nlocalsym: 0
139// CHECK-NEXT:   iextdefsym: 0
140// CHECK-NEXT:   nextdefsym: 2
141// CHECK-NEXT:   iundefsym: 2
142// CHECK-NEXT:   nundefsym: 0
143// CHECK-NEXT:   tocoff: 0
144// CHECK-NEXT:   ntoc: 0
145// CHECK-NEXT:   modtaboff: 0
146// CHECK-NEXT:   nmodtab: 0
147// CHECK-NEXT:   extrefsymoff: 0
148// CHECK-NEXT:   nextrefsyms: 0
149// CHECK-NEXT:   indirectsymoff: 0
150// CHECK-NEXT:   nindirectsyms: 0
151// CHECK-NEXT:   extreloff: 0
152// CHECK-NEXT:   nextrel: 0
153// CHECK-NEXT:   locreloff: 0
154// CHECK-NEXT:   nlocrel: 0
155// CHECK-NEXT: }
156