]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/mach-o/parse-eh-frame-x86-labeled.yaml
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / mach-o / parse-eh-frame-x86-labeled.yaml
1 # RUN: lld -flavor darwin -arch i386 -r -print_atoms %s -o %t  | FileCheck %s
2 #
3 # Test parsing of old __eh_frame (dwarf unwind) section that has .eh labels
4 # and relocations.
5 #
6
7 --- !mach-o
8 arch:            x86
9 file-type:       MH_OBJECT
10 flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
11 OS:              unknown
12 sections:        
13   - segment:         __TEXT
14     section:         __text
15     type:            S_REGULAR
16     attributes:      [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
17     address:         0x0000000000000000
18     content:         [ 0x55, 0x89, 0xE5, 0x56, 0x83, 0xEC, 0x14, 0xE8, 
19                        0x00, 0x00, 0x00, 0x00, 0x5E, 0xC7, 0x04, 0x24, 
20                        0x04, 0x00, 0x00, 0x00, 0xE8, 0xE7, 0xFF, 0xFF, 
21                        0xFF, 0xC7, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 
22                        0x8E, 0x38, 0x00, 0x00, 0x00, 0x89, 0x4C, 0x24, 
23                        0x04, 0x89, 0x04, 0x24, 0xC7, 0x44, 0x24, 0x08, 
24                        0x00, 0x00, 0x00, 0x00, 0xE8, 0xC7, 0xFF, 0xFF, 
25                        0xFF, 0x55, 0x89, 0xE5, 0x83, 0xEC, 0x08, 0xE8, 
26                        0xBC, 0xFF, 0xFF, 0xFF ]
27     relocations:     
28       - offset:          0x00000040
29         type:            GENERIC_RELOC_VANILLA
30         length:          2
31         pc-rel:          true
32         extern:          false
33         symbol:          1
34       - offset:          0x00000035
35         type:            GENERIC_RELOC_VANILLA
36         length:          2
37         pc-rel:          true
38         extern:          true
39         symbol:          7
40       - offset:          0x00000021
41         scattered:       true
42         type:            GENERIC_RELOC_LOCAL_SECTDIFF
43         length:          2
44         pc-rel:          false
45         value:           0x00000044
46       - offset:          0x00000000
47         scattered:       true
48         type:            GENERIC_RELOC_PAIR
49         length:          2
50         pc-rel:          false
51         value:           0x0000000C
52       - offset:          0x00000015
53         type:            GENERIC_RELOC_VANILLA
54         length:          2
55         pc-rel:          true
56         extern:          true
57         symbol:          6
58   - segment:         __IMPORT
59     section:         __pointers
60     type:            S_NON_LAZY_SYMBOL_POINTERS
61     attributes:      [  ]
62     address:         0x0000000000000044
63     content:         [ 0x00, 0x00, 0x00, 0x00 ]
64     indirect-syms:   [ 5 ]
65   - segment:         __TEXT
66     section:         __eh_frame
67     type:            S_REGULAR
68     attributes:      [  ]
69     alignment:       2
70     address:         0x0000000000000048
71     content:         [ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
72                        0x01, 0x7A, 0x52, 0x00, 0x01, 0x7C, 0x08, 0x01, 
73                        0x10, 0x0C, 0x05, 0x04, 0x88, 0x01, 0x00, 0x00, 
74                        0x18, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 
75                        0x98, 0xFF, 0xFF, 0xFF, 0x39, 0x00, 0x00, 0x00, 
76                        0x00, 0x41, 0x0E, 0x08, 0x84, 0x02, 0x42, 0x0D, 
77                        0x04, 0x44, 0x86, 0x03, 0x18, 0x00, 0x00, 0x00, 
78                        0x38, 0x00, 0x00, 0x00, 0xB5, 0xFF, 0xFF, 0xFF, 
79                        0x0B, 0x00, 0x00, 0x00, 0x00, 0x41, 0x0E, 0x08, 
80                        0x84, 0x02, 0x42, 0x0D, 0x04, 0x00, 0x00, 0x00 ]
81     relocations:     
82       - offset:          0x0000001C
83         scattered:       true
84         type:            GENERIC_RELOC_LOCAL_SECTDIFF
85         length:          2
86         pc-rel:          false
87         value:           0x00000064
88       - offset:          0x00000000
89         scattered:       true
90         type:            GENERIC_RELOC_PAIR
91         length:          2
92         pc-rel:          false
93         value:           0x00000048
94       - offset:          0x00000020
95         scattered:       true
96         type:            GENERIC_RELOC_SECTDIFF
97         length:          2
98         pc-rel:          false
99         value:           0x00000000
100       - offset:          0x00000000
101         scattered:       true
102         type:            GENERIC_RELOC_PAIR
103         length:          2
104         pc-rel:          false
105         value:           0x00000068
106       - offset:          0x00000038
107         scattered:       true
108         type:            GENERIC_RELOC_LOCAL_SECTDIFF
109         length:          2
110         pc-rel:          false
111         value:           0x00000080
112       - offset:          0x00000000
113         scattered:       true
114         type:            GENERIC_RELOC_PAIR
115         length:          2
116         pc-rel:          false
117         value:           0x00000048
118       - offset:          0x0000003C
119         scattered:       true
120         type:            GENERIC_RELOC_SECTDIFF
121         length:          2
122         pc-rel:          false
123         value:           0x00000039
124       - offset:          0x00000000
125         scattered:       true
126         type:            GENERIC_RELOC_PAIR
127         length:          2
128         pc-rel:          false
129         value:           0x00000084
130 local-symbols:   
131   - name:            EH_frame0
132     type:            N_SECT
133     sect:            3
134     value:           0x0000000000000048
135 global-symbols:  
136   - name:            __Z3barv
137     type:            N_SECT
138     scope:           [ N_EXT ]
139     sect:            1
140     value:           0x0000000000000039
141   - name:            __Z3barv.eh
142     type:            N_SECT
143     scope:           [ N_EXT ]
144     sect:            3
145     value:           0x000000000000007C
146   - name:            __Z3foov
147     type:            N_SECT
148     scope:           [ N_EXT ]
149     sect:            1
150     value:           0x0000000000000000
151   - name:            __Z3foov.eh
152     type:            N_SECT
153     scope:           [ N_EXT ]
154     sect:            3
155     value:           0x0000000000000060
156 undefined-symbols: 
157   - name:            __ZTIi
158     type:            N_UNDF
159     scope:           [ N_EXT ]
160     value:           0x0000000000000000
161   - name:            ___cxa_allocate_exception
162     type:            N_UNDF
163     scope:           [ N_EXT ]
164     value:           0x0000000000000000
165   - name:            ___cxa_throw
166     type:            N_UNDF
167     scope:           [ N_EXT ]
168     value:           0x0000000000000000
169 ...
170
171 # CHECK: defined-atoms:   
172 # CHECK:   - ref-name:        [[CIE:L[L0-9]+]]
173 # CHECK:     type:            unwind-cfi
174 # CHECK:     content:          
175 # CHECK:   - type:            unwind-cfi
176 # CHECK:     content:         
177 # CHECK:     references:      
178 # CHECK:       - kind:            negDelta32
179 # CHECK:         offset:          4
180 # CHECK:         target:          [[CIE]]
181 # CHECK:       - kind:            delta32
182 # CHECK:         offset:          8
183 # CHECK:         target:          __Z3foov
184 # CHECK:   - type:            unwind-cfi
185 # CHECK:     content:          
186 # CHECK:     references:      
187 # CHECK:       - kind:            negDelta32
188 # CHECK:         offset:          4
189 # CHECK:         target:          [[CIE]]
190 # CHECK:       - kind:            delta32
191 # CHECK:         offset:          8
192 # CHECK:         target:          __Z3barv
193