1# RUN: ld64.lld -arch x86_64 -dylib %s -o %t \
2# RUN:     -exported_symbol .objc_class_name_Foo %p/Inputs/x86_64/libSystem.yaml
3# RUN: llvm-nm -m %t | FileCheck %s
4#
5# Test that exported objc classes can be specificed using old naming
6# (.e.g .objc_class_name_Foo instead of _OBJC_CLASS_$_Foo)
7#
8
9--- !mach-o
10arch:            x86_64
11file-type:       MH_OBJECT
12flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
13sections:
14  - segment:         __DATA
15    section:         __objc_data
16    type:            S_REGULAR
17    attributes:      [  ]
18    alignment:       8
19    address:         0x0000000000000000
20    content:         [ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
21                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
22                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
23                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
24                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
26                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
27                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
29                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ]
30    relocations:
31      - offset:          0x00000030
32        type:            X86_64_RELOC_UNSIGNED
33        length:          3
34        pc-rel:          false
35        extern:          true
36        symbol:          0
37      - offset:          0x00000028
38        type:            X86_64_RELOC_UNSIGNED
39        length:          3
40        pc-rel:          false
41        extern:          true
42        symbol:          1
43      - offset:          0x00000000
44        type:            X86_64_RELOC_UNSIGNED
45        length:          3
46        pc-rel:          false
47        extern:          true
48        symbol:          1
49global-symbols:
50  - name:            '_OBJC_CLASS_$_Foo'
51    type:            N_SECT
52    scope:           [ N_EXT ]
53    sect:            1
54    value:           0x0000000000000000
55  - name:            '_OBJC_METACLASS_$_Foo'
56    type:            N_SECT
57    scope:           [ N_EXT ]
58    sect:            1
59    value:           0x0000000000000028
60...
61
62# CHECK:  (__DATA,__objc_data) external _OBJC_CLASS_$_Foo
63# CHECK:  (__DATA,__objc_data) external _OBJC_METACLASS_$_Foo
64