]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/mach-o/parse-cfstring64.yaml
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / mach-o / parse-cfstring64.yaml
1 # RUN: ld64.lld -arch x86_64 -r -print_atoms %s -o %t  | FileCheck %s
2 #
3 # Test parsing of CFString constants.
4 #
5
6 --- !mach-o
7 arch:            x86_64
8 file-type:       MH_OBJECT
9 flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
10 has-UUID:        false
11 OS:              unknown
12 sections:
13   - segment:         __TEXT
14     section:         __cstring
15     type:            S_CSTRING_LITERALS
16     attributes:      [  ]
17     address:         0x0000000000000000
18     content:         [ 0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x00, 0x74, 0x68,
19                        0x65, 0x72, 0x65, 0x00 ]
20   - segment:         __DATA
21     section:         __cfstring
22     type:            S_REGULAR
23     attributes:      [  ]
24     alignment:       4
25     address:         0x0000000000000010
26     content:         [ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
27                        0xC8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
29                        0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
31                        0xC8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
32                        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33                        0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ]
34     relocations:
35       - offset:          0x00000030
36         type:            X86_64_RELOC_UNSIGNED
37         length:          3
38         pc-rel:          false
39         extern:          true
40         symbol:          1
41       - offset:          0x00000020
42         type:            X86_64_RELOC_UNSIGNED
43         length:          3
44         pc-rel:          false
45         extern:          true
46         symbol:          2
47       - offset:          0x00000010
48         type:            X86_64_RELOC_UNSIGNED
49         length:          3
50         pc-rel:          false
51         extern:          true
52         symbol:          0
53       - offset:          0x00000000
54         type:            X86_64_RELOC_UNSIGNED
55         length:          3
56         pc-rel:          false
57         extern:          true
58         symbol:          2
59 local-symbols:
60   - name:            Lstr1
61     type:            N_SECT
62     sect:            1
63     value:           0x0000000000000000
64   - name:            Lstr2
65     type:            N_SECT
66     sect:            1
67     value:           0x0000000000000006
68 undefined-symbols:
69   - name:            ___CFConstantStringClassReference
70     type:            N_UNDF
71     scope:           [ N_EXT ]
72     value:           0x0000000000000000
73 ...
74
75 # CHECK:defined-atoms:
76 # CHECK:  - ref-name:        L000
77 # CHECK:    scope:           hidden
78 # CHECK:    type:            c-string
79 # CHECK:    content:         [ 68, 65, 6C, 6C, 6F, 00 ]
80 # CHECK:    merge:           by-content
81 # CHECK:  - ref-name:        L001
82 # CHECK:    scope:           hidden
83 # CHECK:    type:            c-string
84 # CHECK:    content:         [ 74, 68, 65, 72, 65, 00 ]
85 # CHECK:    merge:           by-content
86 # CHECK:  - scope:           hidden
87 # CHECK:    type:            cfstring
88 # CHECK:    merge:           by-content
89 # CHECK:    references:
90 # CHECK:      - kind:            pointer64
91 # CHECK:        offset:          0
92 # CHECK:        target:          ___CFConstantStringClassReference
93 # CHECK:      - kind:            pointer64
94 # CHECK:        offset:          16
95 # CHECK:        target:          L000
96 # CHECK:  - scope:           hidden
97 # CHECK:    type:            cfstring
98 # CHECK:    merge:           by-content
99 # CHECK:    references:
100 # CHECK:      - kind:            pointer64
101 # CHECK:        offset:          0
102 # CHECK:        target:          ___CFConstantStringClassReference
103 # CHECK:      - kind:            pointer64
104 # CHECK:        offset:          16
105 # CHECK:        target:          L001
106 # CHECK:undefined-atoms:
107 # CHECK:  - name:            ___CFConstantStringClassReference
108