Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-readobj / wasm / wasm-imports.test
blobe8f8c9d9154fc593717d9e7f806421e3447e1279
1 # RUN: yaml2obj %s | llvm-readobj --symbols - | FileCheck %s
3 # Test symbols with custom import module and name attributes.
5 --- !WASM
6 FileHeader:      
7   Version:         0x00000001
8 Sections:        
9   - Type:            TYPE
10     Signatures:      
11       - Index:           0
12         ParamTypes:      []
13         ReturnTypes:
14           - I32
15       - Index:           1
16         ParamTypes:      []
17         ReturnTypes:     []
18   - Type:            IMPORT
19     Imports:         
20       - Module:          env
21         Field:           __linear_memory
22         Kind:            MEMORY
23         Memory:          
24           Minimum:         0x00000000
25       - Module:          env
26         Field:           __indirect_function_table
27         Kind:            TABLE
28         Table:           
29           Index:           0
30           ElemType:        FUNCREF
31           Limits:          
32             Minimum:         0x00000000
33       - Module:          red
34         Field:           foo
35         Kind:            FUNCTION
36         SigIndex:        1
37       - Module:          env
38         Field:           green
39         Kind:            FUNCTION
40         SigIndex:        1
41       - Module:          blue
42         Field:           purple
43         Kind:            FUNCTION
44         SigIndex:        1
45   - Type:            FUNCTION
46     FunctionTypes:   [ 0 ]
47   - Type:            CODE
48     Relocations:     
49       - Type:            R_WASM_FUNCTION_INDEX_LEB
50         Index:           1
51         Offset:          0x00000004
52       - Type:            R_WASM_FUNCTION_INDEX_LEB
53         Index:           2
54         Offset:          0x0000000A
55       - Type:            R_WASM_FUNCTION_INDEX_LEB
56         Index:           3
57         Offset:          0x00000010
58     Functions:       
59       - Index:           3
60         Locals:          []
61         Body:            10808080800010818080800010828080800041000B
62   - Type:            CUSTOM
63     Name:            linking
64     Version:         2
65     SymbolTable:     
66       - Index:           0
67         Kind:            FUNCTION
68         Name:            test
69         Flags:           [ VISIBILITY_HIDDEN ]
70         Function:        3
71       - Index:           1
72         Kind:            FUNCTION
73         Name:            foo
74         Flags:           [ UNDEFINED ]
75         Function:        0
76       - Index:           2
77         Kind:            FUNCTION
78         Name:            bar
79         Flags:           [ UNDEFINED, EXPLICIT_NAME ]
80         Function:        1
81       - Index:           3
82         Kind:            FUNCTION
83         Name:            qux
84         Flags:           [ UNDEFINED, EXPLICIT_NAME ]
85         Function:        2
86   - Type:            CUSTOM
87     Name:            producers
88     Tools:           
89       - Name:            clang
90         Version:         '9.0.0 (trunk 359436)'
91 ...
93 # CHECK:      Format: WASM
94 # CHECK-NEXT: Arch: wasm32
95 # CHECK-NEXT: AddressSize: 32bit
96 # CHECK-NEXT: Symbols [
97 # CHECK-NEXT:   Symbol {
98 # CHECK-NEXT:     Name: test
99 # CHECK-NEXT:     Type: FUNCTION (0x0)
100 # CHECK-NEXT:     Flags [ (0x4)
101 # CHECK-NEXT:       VISIBILITY_HIDDEN (0x4)
102 # CHECK-NEXT:     ]
103 # CHECK-NEXT:     ElementIndex: 0x3
104 # CHECK-NEXT:   }
105 # CHECK-NEXT:   Symbol {
106 # CHECK-NEXT:     Name: foo
107 # CHECK-NEXT:     Type: FUNCTION (0x0)
108 # CHECK-NEXT:     Flags [ (0x10)
109 # CHECK-NEXT:       UNDEFINED (0x10)
110 # CHECK-NEXT:     ]
111 # CHECK-NEXT:     ImportModule: red
112 # CHECK-NEXT:     ElementIndex: 0x0
113 # CHECK-NEXT:   }
114 # CHECK-NEXT:   Symbol {
115 # CHECK-NEXT:     Name: bar
116 # CHECK-NEXT:     Type: FUNCTION (0x0)
117 # CHECK-NEXT:     Flags [ (0x50)
118 # CHECK-NEXT:       EXPLICIT_NAME (0x40)
119 # CHECK-NEXT:       UNDEFINED (0x10)
120 # CHECK-NEXT:     ]
121 # CHECK-NEXT:     ImportName: green
122 # CHECK-NEXT:     ImportModule: env
123 # CHECK-NEXT:     ElementIndex: 0x1
124 # CHECK-NEXT:   }
125 # CHECK-NEXT:   Symbol {
126 # CHECK-NEXT:     Name: qux
127 # CHECK-NEXT:     Type: FUNCTION (0x0)
128 # CHECK-NEXT:     Flags [ (0x50)
129 # CHECK-NEXT:       EXPLICIT_NAME (0x40)
130 # CHECK-NEXT:       UNDEFINED (0x10)
131 # CHECK-NEXT:     ]
132 # CHECK-NEXT:     ImportName: purple
133 # CHECK-NEXT:     ImportModule: blue
134 # CHECK-NEXT:     ElementIndex: 0x2
135 # CHECK-NEXT:   }
136 # CHECK-NEXT: ]