Home | History | Annotate | Download | only in MachO
      1 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s
      2 
      3         .reference sym_ref_A
      4         .reference sym_ref_def_A
      5 sym_ref_def_A:
      6 sym_ref_def_C:
      7         .reference sym_ref_def_C
      8         .reference sym_ref_def_D
      9         .globl sym_ref_def_D
     10         .globl sym_ref_def_E
     11         .reference sym_ref_def_E
     12 
     13         .weak_reference sym_weak_ref_A
     14         .weak_reference sym_weak_ref_def_A
     15 sym_weak_ref_def_A:
     16 sym_weak_ref_def_B:
     17         .weak_reference sym_weak_ref_def_B
     18 
     19         .data
     20         .globl sym_weak_def_A
     21         .weak_definition sym_weak_def_A
     22 sym_weak_def_A:
     23 sym_weak_def_B:
     24         .weak_definition sym_weak_def_B
     25         .globl sym_weak_def_B
     26         .weak_definition sym_weak_def_C
     27 sym_weak_def_C:
     28         .globl sym_weak_def_C
     29 
     30         .lazy_reference sym_lazy_ref_A
     31         .lazy_reference sym_lazy_ref_B
     32 sym_lazy_ref_B:
     33 sym_lazy_ref_C:
     34         .lazy_reference sym_lazy_ref_C
     35         .lazy_reference sym_lazy_ref_D
     36         .globl sym_lazy_ref_D
     37         .globl sym_lazy_ref_E
     38         .lazy_reference sym_lazy_ref_E
     39 
     40         .private_extern sym_private_ext_A
     41         .private_extern sym_private_ext_B
     42 sym_private_ext_B:
     43 sym_private_ext_C:
     44         .private_extern sym_private_ext_C
     45         .private_extern sym_private_ext_D
     46         .globl sym_private_ext_D
     47         .globl sym_private_ext_E
     48         .private_extern sym_private_ext_E
     49 
     50         .no_dead_strip sym_no_dead_strip_A
     51 
     52 sym_symbol_resolver_A:
     53 	.symbol_resolver sym_symbol_resolver_A
     54 
     55         .reference sym_ref_A
     56         .desc sym_ref_A, 1
     57         .desc sym_ref_A, 0x1234
     58 
     59         .desc sym_desc_flags,0x47
     60 sym_desc_flags:
     61 
     62 // CHECK: ('cputype', 7)
     63 // CHECK: ('cpusubtype', 3)
     64 // CHECK: ('filetype', 1)
     65 // CHECK: ('num_load_commands', 3)
     66 // CHECK: ('load_commands_size', 296)
     67 // CHECK: ('flag', 0)
     68 // CHECK: ('load_commands', [
     69 // CHECK:   # Load Command 0
     70 // CHECK:  (('command', 1)
     71 // CHECK:   ('size', 192)
     72 // CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     73 // CHECK:   ('vm_addr', 0)
     74 // CHECK:   ('vm_size', 0)
     75 // CHECK:   ('file_offset', 324)
     76 // CHECK:   ('file_size', 0)
     77 // CHECK:   ('maxprot', 7)
     78 // CHECK:   ('initprot', 7)
     79 // CHECK:   ('num_sections', 2)
     80 // CHECK:   ('flags', 0)
     81 // CHECK:   ('sections', [
     82 // CHECK:     # Section 0
     83 // CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     84 // CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     85 // CHECK:     ('address', 0)
     86 // CHECK:     ('size', 0)
     87 // CHECK:     ('offset', 324)
     88 // CHECK:     ('alignment', 0)
     89 // CHECK:     ('reloc_offset', 0)
     90 // CHECK:     ('num_reloc', 0)
     91 // CHECK:     ('flags', 0x80000000)
     92 // CHECK:     ('reserved1', 0)
     93 // CHECK:     ('reserved2', 0)
     94 // CHECK:    ),
     95 // CHECK:   ('_relocations', [
     96 // CHECK:   ])
     97 // CHECK:     # Section 1
     98 // CHECK:    (('section_name', '__data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     99 // CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
    100 // CHECK:     ('address', 0)
    101 // CHECK:     ('size', 0)
    102 // CHECK:     ('offset', 324)
    103 // CHECK:     ('alignment', 0)
    104 // CHECK:     ('reloc_offset', 0)
    105 // CHECK:     ('num_reloc', 0)
    106 // CHECK:     ('flags', 0x0)
    107 // CHECK:     ('reserved1', 0)
    108 // CHECK:     ('reserved2', 0)
    109 // CHECK:    ),
    110 // CHECK:   ('_relocations', [
    111 // CHECK:   ])
    112 // CHECK:   ])
    113 // CHECK:  ),
    114 // CHECK:   # Load Command 1
    115 // CHECK:  (('command', 2)
    116 // CHECK:   ('size', 24)
    117 // CHECK:   ('symoff', 324)
    118 // CHECK:   ('nsyms', 24)
    119 // CHECK:   ('stroff', 612)
    120 // CHECK:   ('strsize', 388)
    121 // CHECK:   ('_string_data', '\x00sym_ref_A\x00sym_ref_def_D\x00sym_ref_def_E\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_weak_def_B\x00sym_weak_def_C\x00sym_lazy_ref_A\x00sym_lazy_ref_D\x00sym_lazy_ref_E\x00sym_private_ext_A\x00sym_private_ext_B\x00sym_private_ext_C\x00sym_private_ext_D\x00sym_private_ext_E\x00sym_no_dead_strip_A\x00sym_ref_def_A\x00sym_ref_def_C\x00sym_weak_ref_def_A\x00sym_weak_ref_def_B\x00sym_lazy_ref_B\x00sym_lazy_ref_C\x00sym_symbol_resolver_A\x00sym_desc_flags\x00\x00')
    122 // CHECK:   ('_symbols', [
    123 // CHECK:     # Symbol 0
    124 // CHECK:    (('n_strx', 254)
    125 // CHECK:     ('n_type', 0xe)
    126 // CHECK:     ('n_sect', 1)
    127 // CHECK:     ('n_desc', 32)
    128 // CHECK:     ('n_value', 0)
    129 // CHECK:     ('_string', 'sym_ref_def_A')
    130 // CHECK:    ),
    131 // CHECK:     # Symbol 1
    132 // CHECK:    (('n_strx', 268)
    133 // CHECK:     ('n_type', 0xe)
    134 // CHECK:     ('n_sect', 1)
    135 // CHECK:     ('n_desc', 32)
    136 // CHECK:     ('n_value', 0)
    137 // CHECK:     ('_string', 'sym_ref_def_C')
    138 // CHECK:    ),
    139 // CHECK:     # Symbol 2
    140 // CHECK:    (('n_strx', 282)
    141 // CHECK:     ('n_type', 0xe)
    142 // CHECK:     ('n_sect', 1)
    143 // CHECK:     ('n_desc', 64)
    144 // CHECK:     ('n_value', 0)
    145 // CHECK:     ('_string', 'sym_weak_ref_def_A')
    146 // CHECK:    ),
    147 // CHECK:     # Symbol 3
    148 // CHECK:    (('n_strx', 301)
    149 // CHECK:     ('n_type', 0xe)
    150 // CHECK:     ('n_sect', 1)
    151 // CHECK:     ('n_desc', 0)
    152 // CHECK:     ('n_value', 0)
    153 // CHECK:     ('_string', 'sym_weak_ref_def_B')
    154 // CHECK:    ),
    155 // CHECK:     # Symbol 4
    156 // CHECK:    (('n_strx', 320)
    157 // CHECK:     ('n_type', 0xe)
    158 // CHECK:     ('n_sect', 2)
    159 // CHECK:     ('n_desc', 32)
    160 // CHECK:     ('n_value', 0)
    161 // CHECK:     ('_string', 'sym_lazy_ref_B')
    162 // CHECK:    ),
    163 // CHECK:     # Symbol 5
    164 // CHECK:    (('n_strx', 335)
    165 // CHECK:     ('n_type', 0xe)
    166 // CHECK:     ('n_sect', 2)
    167 // CHECK:     ('n_desc', 32)
    168 // CHECK:     ('n_value', 0)
    169 // CHECK:     ('_string', 'sym_lazy_ref_C')
    170 // CHECK:    ),
    171 // CHECK:     # Symbol 6
    172 // CHECK:    (('n_strx', 350)
    173 // CHECK:     ('n_type', 0xe)
    174 // CHECK:     ('n_sect', 2)
    175 // CHECK:     ('n_desc', 256)
    176 // CHECK:     ('n_value', 0)
    177 // CHECK:     ('_string', 'sym_symbol_resolver_A')
    178 // CHECK:    ),
    179 // CHECK:     # Symbol 7
    180 // CHECK:    (('n_strx', 372)
    181 // CHECK:     ('n_type', 0xe)
    182 // CHECK:     ('n_sect', 2)
    183 // CHECK:     ('n_desc', 64)
    184 // CHECK:     ('n_value', 0)
    185 // CHECK:     ('_string', 'sym_desc_flags')
    186 // CHECK:    ),
    187 // CHECK:     # Symbol 8
    188 // CHECK:    (('n_strx', 162)
    189 // CHECK:     ('n_type', 0x1f)
    190 // CHECK:     ('n_sect', 2)
    191 // CHECK:     ('n_desc', 0)
    192 // CHECK:     ('n_value', 0)
    193 // CHECK:     ('_string', 'sym_private_ext_B')
    194 // CHECK:    ),
    195 // CHECK:     # Symbol 9
    196 // CHECK:    (('n_strx', 180)
    197 // CHECK:     ('n_type', 0x1f)
    198 // CHECK:     ('n_sect', 2)
    199 // CHECK:     ('n_desc', 0)
    200 // CHECK:     ('n_value', 0)
    201 // CHECK:     ('_string', 'sym_private_ext_C')
    202 // CHECK:    ),
    203 // CHECK:     # Symbol 10
    204 // CHECK:    (('n_strx', 54)
    205 // CHECK:     ('n_type', 0xf)
    206 // CHECK:     ('n_sect', 2)
    207 // CHECK:     ('n_desc', 128)
    208 // CHECK:     ('n_value', 0)
    209 // CHECK:     ('_string', 'sym_weak_def_A')
    210 // CHECK:    ),
    211 // CHECK:     # Symbol 11
    212 // CHECK:    (('n_strx', 69)
    213 // CHECK:     ('n_type', 0xf)
    214 // CHECK:     ('n_sect', 2)
    215 // CHECK:     ('n_desc', 128)
    216 // CHECK:     ('n_value', 0)
    217 // CHECK:     ('_string', 'sym_weak_def_B')
    218 // CHECK:    ),
    219 // CHECK:     # Symbol 12
    220 // CHECK:    (('n_strx', 84)
    221 // CHECK:     ('n_type', 0xf)
    222 // CHECK:     ('n_sect', 2)
    223 // CHECK:     ('n_desc', 128)
    224 // CHECK:     ('n_value', 0)
    225 // CHECK:     ('_string', 'sym_weak_def_C')
    226 // CHECK:    ),
    227 // CHECK:     # Symbol 13
    228 // CHECK:    (('n_strx', 99)
    229 // CHECK:     ('n_type', 0x1)
    230 // CHECK:     ('n_sect', 0)
    231 // CHECK:     ('n_desc', 33)
    232 // CHECK:     ('n_value', 0)
    233 // CHECK:     ('_string', 'sym_lazy_ref_A')
    234 // CHECK:    ),
    235 // CHECK:     # Symbol 14
    236 // CHECK:    (('n_strx', 114)
    237 // CHECK:     ('n_type', 0x1)
    238 // CHECK:     ('n_sect', 0)
    239 // CHECK:     ('n_desc', 32)
    240 // CHECK:     ('n_value', 0)
    241 // CHECK:     ('_string', 'sym_lazy_ref_D')
    242 // CHECK:    ),
    243 // CHECK:     # Symbol 15
    244 // CHECK:    (('n_strx', 129)
    245 // CHECK:     ('n_type', 0x1)
    246 // CHECK:     ('n_sect', 0)
    247 // CHECK:     ('n_desc', 33)
    248 // CHECK:     ('n_value', 0)
    249 // CHECK:     ('_string', 'sym_lazy_ref_E')
    250 // CHECK:    ),
    251 // CHECK:     # Symbol 16
    252 // CHECK:    (('n_strx', 234)
    253 // CHECK:     ('n_type', 0x1)
    254 // CHECK:     ('n_sect', 0)
    255 // CHECK:     ('n_desc', 32)
    256 // CHECK:     ('n_value', 0)
    257 // CHECK:     ('_string', 'sym_no_dead_strip_A')
    258 // CHECK:    ),
    259 // CHECK:     # Symbol 17
    260 // CHECK:    (('n_strx', 144)
    261 // CHECK:     ('n_type', 0x11)
    262 // CHECK:     ('n_sect', 0)
    263 // CHECK:     ('n_desc', 0)
    264 // CHECK:     ('n_value', 0)
    265 // CHECK:     ('_string', 'sym_private_ext_A')
    266 // CHECK:    ),
    267 // CHECK:     # Symbol 18
    268 // CHECK:    (('n_strx', 198)
    269 // CHECK:     ('n_type', 0x11)
    270 // CHECK:     ('n_sect', 0)
    271 // CHECK:     ('n_desc', 0)
    272 // CHECK:     ('n_value', 0)
    273 // CHECK:     ('_string', 'sym_private_ext_D')
    274 // CHECK:    ),
    275 // CHECK:     # Symbol 19
    276 // CHECK:    (('n_strx', 216)
    277 // CHECK:     ('n_type', 0x11)
    278 // CHECK:     ('n_sect', 0)
    279 // CHECK:     ('n_desc', 0)
    280 // CHECK:     ('n_value', 0)
    281 // CHECK:     ('_string', 'sym_private_ext_E')
    282 // CHECK:    ),
    283 // CHECK:     # Symbol 20
    284 // CHECK:    (('n_strx', 1)
    285 // CHECK:     ('n_type', 0x1)
    286 // CHECK:     ('n_sect', 0)
    287 // CHECK:     ('n_desc', 4660)
    288 // CHECK:     ('n_value', 0)
    289 // CHECK:     ('_string', 'sym_ref_A')
    290 // CHECK:    ),
    291 // CHECK:     # Symbol 21
    292 // CHECK:    (('n_strx', 11)
    293 // CHECK:     ('n_type', 0x1)
    294 // CHECK:     ('n_sect', 0)
    295 // CHECK:     ('n_desc', 32)
    296 // CHECK:     ('n_value', 0)
    297 // CHECK:     ('_string', 'sym_ref_def_D')
    298 // CHECK:    ),
    299 // CHECK:     # Symbol 22
    300 // CHECK:    (('n_strx', 25)
    301 // CHECK:     ('n_type', 0x1)
    302 // CHECK:     ('n_sect', 0)
    303 // CHECK:     ('n_desc', 32)
    304 // CHECK:     ('n_value', 0)
    305 // CHECK:     ('_string', 'sym_ref_def_E')
    306 // CHECK:    ),
    307 // CHECK:     # Symbol 23
    308 // CHECK:    (('n_strx', 39)
    309 // CHECK:     ('n_type', 0x1)
    310 // CHECK:     ('n_sect', 0)
    311 // CHECK:     ('n_desc', 64)
    312 // CHECK:     ('n_value', 0)
    313 // CHECK:     ('_string', 'sym_weak_ref_A')
    314 // CHECK:    ),
    315 // CHECK:   ])
    316 // CHECK:  ),
    317 // CHECK:   # Load Command 2
    318 // CHECK:  (('command', 11)
    319 // CHECK:   ('size', 80)
    320 // CHECK:   ('ilocalsym', 0)
    321 // CHECK:   ('nlocalsym', 8)
    322 // CHECK:   ('iextdefsym', 8)
    323 // CHECK:   ('nextdefsym', 5)
    324 // CHECK:   ('iundefsym', 13)
    325 // CHECK:   ('nundefsym', 11)
    326 // CHECK:   ('tocoff', 0)
    327 // CHECK:   ('ntoc', 0)
    328 // CHECK:   ('modtaboff', 0)
    329 // CHECK:   ('nmodtab', 0)
    330 // CHECK:   ('extrefsymoff', 0)
    331 // CHECK:   ('nextrefsyms', 0)
    332 // CHECK:   ('indirectsymoff', 0)
    333 // CHECK:   ('nindirectsyms', 0)
    334 // CHECK:   ('extreloff', 0)
    335 // CHECK:   ('nextrel', 0)
    336 // CHECK:   ('locreloff', 0)
    337 // CHECK:   ('nlocrel', 0)
    338 // CHECK:   ('_indirect_symbols', [
    339 // CHECK:   ])
    340 // CHECK:  ),
    341 // CHECK: ])
    342