1 // RUN
: llvm-mc
-triple i386-apple-darwin9
%s
-filetype
=obj
-o
- | macho-dump
--dump-section-data | FileCheck
%s
3 // FIXME
: We don
't get the order right currently, the assembler first
4 // orders the symbols, then assigns addresses. :(
7 .lcomm sym_lcomm_C, 4, 4
8 .lcomm sym_lcomm_A, 4, 3
13 .lcomm sym_lcomm_C, 4, 4
18 .lcomm sym_lcomm_A, 4, 3
22 // CHECK: ('cputype
', 7)
23 // CHECK: ('cpusubtype
', 3)
24 // CHECK: ('filetype
', 1)
25 // CHECK: ('num_load_commands
', 1)
26 // CHECK: ('load_commands_size
', 296)
28 // CHECK: ('load_commands
', [
29 // CHECK: # Load Command 0
30 // CHECK: (('command
', 1)
31 // CHECK: ('size
', 192)
32 // CHECK: ('segment_name
', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
33 // CHECK: ('vm_addr
', 0)
34 // CHECK: ('vm_size
', 16)
35 // CHECK: ('file_offset
', 324)
36 // CHECK: ('file_size
', 0)
37 // CHECK: ('maxprot
', 7)
38 // CHECK: ('initprot
', 7)
39 // CHECK: ('num_sections
', 2)
40 // CHECK: ('flags
', 0)
41 // CHECK: ('sections
', [
43 // CHECK: (('section_name
', '__text
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
44 // CHECK: ('segment_name
', '__TEXT
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
45 // CHECK: ('address
', 0)
47 // CHECK: ('offset
', 324)
48 // CHECK: ('alignment
', 0)
49 // CHECK: ('reloc_offset
', 0)
50 // CHECK: ('num_reloc
', 0)
51 // CHECK: ('flags
', 0x80000000)
52 // CHECK: ('reserved1
', 0)
53 // CHECK: ('reserved2
', 0)
55 // CHECK: ('_relocations
', [
58 // CHECK: (('section_name
', '__bss
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
59 // CHECK: ('segment_name
', '__DATA
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
60 // CHECK: ('address
', 0)
61 // CHECK: ('size
', 16)
62 // CHECK: ('offset
', 0)
63 // CHECK: ('alignment
', 4)
64 // CHECK: ('reloc_offset
', 0)
65 // CHECK: ('num_reloc
', 0)
66 // CHECK: ('flags
', 0x1)
67 // CHECK: ('reserved1
', 0)
68 // CHECK: ('reserved2
', 0)
70 // CHECK: ('_relocations
', [
74 // CHECK: # Load Command 1
75 // CHECK: (('command
', 2)
76 // CHECK: ('size
', 24)
77 // CHECK: ('symoff
', 324)
78 // CHECK: ('nsyms
', 4)
79 // CHECK: ('stroff
', 372)
80 // CHECK: ('strsize
', 52)
81 // CHECK: ('_string_data
', '\x00sym_lcomm_C
\x00sym_lcomm_D
\x00sym_lcomm_A
\x00sym_lcomm_B
\x00\x00\x00\x00')
82 // CHECK: ('_symbols
', [
84 // CHECK: (('n_strx
', 25)
85 // CHECK: ('n_type
', 0xe)
86 // CHECK: ('n_sect
', 2)
87 // CHECK: ('n_desc
', 0)
88 // CHECK: ('n_value
', 8)
89 // CHECK: ('_string
', 'sym_lcomm_A
')
92 // CHECK: (('n_strx
', 37)
93 // CHECK: ('n_type
', 0xe)
94 // CHECK: ('n_sect
', 2)
95 // CHECK: ('n_desc
', 0)
96 // CHECK: ('n_value
', 12)
97 // CHECK: ('_string
', 'sym_lcomm_B
')
100 // CHECK: (('n_strx
', 1)
101 // CHECK: ('n_type
', 0xf)
102 // CHECK: ('n_sect
', 2)
103 // CHECK: ('n_desc
', 0)
104 // CHECK: ('n_value
', 0)
105 // CHECK: ('_string
', 'sym_lcomm_C
')
108 // CHECK: (('n_strx
', 13)
109 // CHECK: ('n_type
', 0xf)
110 // CHECK: ('n_sect
', 2)
111 // CHECK: ('n_desc
', 0)
112 // CHECK: ('n_value
', 4)
113 // CHECK: ('_string
', 'sym_lcomm_D
')
117 // CHECK: # Load Command 2
118 // CHECK: (('command
', 11)
119 // CHECK: ('size
', 80)
120 // CHECK: ('ilocalsym
', 0)
121 // CHECK: ('nlocalsym
', 2)
122 // CHECK: ('iextdefsym
', 2)
123 // CHECK: ('nextdefsym
', 2)
124 // CHECK: ('iundefsym
', 4)
125 // CHECK: ('nundefsym
', 0)
126 // CHECK: ('tocoff
', 0)
127 // CHECK: ('ntoc
', 0)
128 // CHECK: ('modtaboff
', 0)
129 // CHECK: ('nmodtab
', 0)
130 // CHECK: ('extrefsymoff
', 0)
131 // CHECK: ('nextrefsyms
', 0)
132 // CHECK: ('indirectsymoff
', 0)
133 // CHECK: ('nindirectsyms
', 0)
134 // CHECK: ('extreloff
', 0)
135 // CHECK: ('nextrel
', 0)
136 // CHECK: ('locreloff
', 0)
137 // CHECK: ('nlocrel
', 0)
138 // CHECK: ('_indirect_symbols
', [