]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/mach-o/parse-function.yaml
Vendor import of lld trunk r233088:
[FreeBSD/FreeBSD.git] / test / mach-o / parse-function.yaml
1 # RUN: lld -flavor darwin -arch x86_64 -r %s -o %t  
2 # RUN: lld -flavor darwin -arch x86_64 -r %t -print_atoms -o %t2 | FileCheck %s
3 #
4 # Test parsing of mach-o functions.
5 #
6
7 --- !mach-o
8 arch:            x86_64
9 file-type:       MH_OBJECT
10 flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
11 has-UUID:        false
12 OS:              unknown
13 sections:
14   - segment:         __TEXT
15     section:         __text
16     type:            S_REGULAR
17     attributes:      [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
18     alignment:       4
19     address:         0x0000000000000000
20     content:         [ 0xCC, 0xC3, 0x90, 0xC3, 0x90, 0x90, 0xC3, 0x90, 
21                        0x90, 0x90, 0xC3, 0x90, 0x90, 0x90, 0x90, 0xC3,
22                        0xCC, 0x31, 0xC0, 0xC3 ]
23 local-symbols:
24   - name:            _myStatic
25     type:            N_SECT
26     sect:            1
27     value:           0x000000000000000B
28 global-symbols:
29   - name:            _myGlobal
30     type:            N_SECT
31     scope:           [ N_EXT ]
32     sect:            1
33     value:           0x0000000000000001
34   - name:            _myGlobalWeak
35     type:            N_SECT
36     scope:           [ N_EXT ]
37     sect:            1
38     desc:            [ N_WEAK_DEF ]
39     value:           0x0000000000000002
40   - name:            _myHidden
41     type:            N_SECT
42     scope:           [ N_EXT, N_PEXT ]
43     sect:            1
44     value:           0x0000000000000004
45   - name:            _myHiddenWeak
46     type:            N_SECT
47     scope:           [ N_EXT, N_PEXT ]
48     sect:            1
49     desc:            [ N_WEAK_DEF ]
50     value:           0x0000000000000007
51   - name:            _myStripNot
52     type:            N_SECT
53     scope:           [ N_EXT ]
54     sect:            1
55     desc:            [ N_NO_DEAD_STRIP ]
56     value:           0x0000000000000010
57   - name:            _myResolver
58     type:            N_SECT
59     scope:           [ N_EXT ]
60     sect:            1
61     desc:            [ N_SYMBOL_RESOLVER ]
62     value:           0x0000000000000011
63 ...
64
65 # CHECK-NOT:  name:  
66 # CHECK:      content:         [ CC ]
67
68 # CHECK:      name:   _myGlobal
69 # CHECK:      scope:  global
70 # CHECK:      content:         [ C3 ]
71
72 # CHECK:      name:   _myGlobalWeak
73 # CHECK:      scope:  global
74 # CHECK:      content:         [ 90, C3 ]
75 # CHECK:      merge:  as-weak
76
77 # CHECK:      name:   _myHidden
78 # CHECK:      scope:  hidden
79 # CHECK:      content:         [ 90, 90, C3 ]
80
81 # CHECK:      name:   _myHiddenWeak
82 # CHECK:      scope:  hidden
83 # CHECK:      content:         [ 90, 90, 90, C3 ]
84 # CHECK:      merge:  as-weak
85
86 # CHECK:      name:   _myStatic
87 # CHECK-NOT:    scope:  global
88 # CHECK-NOT:    scope:  hidden
89 # CHECK:      content:         [ 90, 90, 90, 90, C3 ]
90
91 # CHECK:      name:    _myStripNot
92 # CHECK:      scope:   global
93 # CHECK:      content:         [ CC ]
94 # CHECK:      dead-strip:  never
95
96 # CHECK:      name:    _myResolver
97 # CHECK:      scope:   global
98 # CHECK:      type:    resolver
99 # CHECK:      content:         [ 31, C0, C3 ]
100