...
1;;
2;; Generated by ../meta/generate_table_init.js
3;; DO NOT EDIT THIS FILE. CHANGE THE SOURCE AND REGENERATE.
4;;
5
6(module
7 (func (export "ef0") (result i32) (i32.const 0))
8 (func (export "ef1") (result i32) (i32.const 1))
9 (func (export "ef2") (result i32) (i32.const 2))
10 (func (export "ef3") (result i32) (i32.const 3))
11 (func (export "ef4") (result i32) (i32.const 4))
12)
13(register "a")
14
15(module
16 (type (func (result i32))) ;; type #0
17 (import "a" "ef0" (func (result i32))) ;; index 0
18 (import "a" "ef1" (func (result i32)))
19 (import "a" "ef2" (func (result i32)))
20 (import "a" "ef3" (func (result i32)))
21 (import "a" "ef4" (func (result i32))) ;; index 4
22 (table $t0 30 30 funcref)
23 (table $t1 30 30 funcref)
24 (elem (table $t0) (i32.const 2) func 3 1 4 1)
25 (elem funcref
26 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
27 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
28 (elem funcref
29 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
30 (func (result i32) (i32.const 5)) ;; index 5
31 (func (result i32) (i32.const 6))
32 (func (result i32) (i32.const 7))
33 (func (result i32) (i32.const 8))
34 (func (result i32) (i32.const 9)) ;; index 9
35 (func (export "test")
36 (table.init $t0 1 (i32.const 7) (i32.const 0) (i32.const 4)))
37 (func (export "check") (param i32) (result i32)
38 (call_indirect $t0 (type 0) (local.get 0)))
39)
40
41(invoke "test")
42(assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
43(assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
44(assert_return (invoke "check" (i32.const 2)) (i32.const 3))
45(assert_return (invoke "check" (i32.const 3)) (i32.const 1))
46(assert_return (invoke "check" (i32.const 4)) (i32.const 4))
47(assert_return (invoke "check" (i32.const 5)) (i32.const 1))
48(assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
49(assert_return (invoke "check" (i32.const 7)) (i32.const 2))
50(assert_return (invoke "check" (i32.const 8)) (i32.const 7))
51(assert_return (invoke "check" (i32.const 9)) (i32.const 1))
52(assert_return (invoke "check" (i32.const 10)) (i32.const 8))
53(assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
54(assert_return (invoke "check" (i32.const 12)) (i32.const 7))
55(assert_return (invoke "check" (i32.const 13)) (i32.const 5))
56(assert_return (invoke "check" (i32.const 14)) (i32.const 2))
57(assert_return (invoke "check" (i32.const 15)) (i32.const 3))
58(assert_return (invoke "check" (i32.const 16)) (i32.const 6))
59(assert_trap (invoke "check" (i32.const 17)) "uninitialized element")
60(assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
61(assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
62(assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
63(assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
64(assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
65(assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
66(assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
67(assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
68(assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
69(assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
70(assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
71(assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
72
73(module
74 (type (func (result i32))) ;; type #0
75 (import "a" "ef0" (func (result i32))) ;; index 0
76 (import "a" "ef1" (func (result i32)))
77 (import "a" "ef2" (func (result i32)))
78 (import "a" "ef3" (func (result i32)))
79 (import "a" "ef4" (func (result i32))) ;; index 4
80 (table $t0 30 30 funcref)
81 (table $t1 30 30 funcref)
82 (elem (table $t0) (i32.const 2) func 3 1 4 1)
83 (elem funcref
84 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
85 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
86 (elem funcref
87 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
88 (func (result i32) (i32.const 5)) ;; index 5
89 (func (result i32) (i32.const 6))
90 (func (result i32) (i32.const 7))
91 (func (result i32) (i32.const 8))
92 (func (result i32) (i32.const 9)) ;; index 9
93 (func (export "test")
94 (table.init $t0 3 (i32.const 15) (i32.const 1) (i32.const 3)))
95 (func (export "check") (param i32) (result i32)
96 (call_indirect $t0 (type 0) (local.get 0)))
97)
98
99(invoke "test")
100(assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
101(assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
102(assert_return (invoke "check" (i32.const 2)) (i32.const 3))
103(assert_return (invoke "check" (i32.const 3)) (i32.const 1))
104(assert_return (invoke "check" (i32.const 4)) (i32.const 4))
105(assert_return (invoke "check" (i32.const 5)) (i32.const 1))
106(assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
107(assert_trap (invoke "check" (i32.const 7)) "uninitialized element")
108(assert_trap (invoke "check" (i32.const 8)) "uninitialized element")
109(assert_trap (invoke "check" (i32.const 9)) "uninitialized element")
110(assert_trap (invoke "check" (i32.const 10)) "uninitialized element")
111(assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
112(assert_return (invoke "check" (i32.const 12)) (i32.const 7))
113(assert_return (invoke "check" (i32.const 13)) (i32.const 5))
114(assert_return (invoke "check" (i32.const 14)) (i32.const 2))
115(assert_return (invoke "check" (i32.const 15)) (i32.const 9))
116(assert_return (invoke "check" (i32.const 16)) (i32.const 2))
117(assert_return (invoke "check" (i32.const 17)) (i32.const 7))
118(assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
119(assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
120(assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
121(assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
122(assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
123(assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
124(assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
125(assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
126(assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
127(assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
128(assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
129(assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
130
131(module
132 (type (func (result i32))) ;; type #0
133 (import "a" "ef0" (func (result i32))) ;; index 0
134 (import "a" "ef1" (func (result i32)))
135 (import "a" "ef2" (func (result i32)))
136 (import "a" "ef3" (func (result i32)))
137 (import "a" "ef4" (func (result i32))) ;; index 4
138 (table $t0 30 30 funcref)
139 (table $t1 30 30 funcref)
140 (elem (table $t0) (i32.const 2) func 3 1 4 1)
141 (elem funcref
142 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
143 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
144 (elem funcref
145 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
146 (func (result i32) (i32.const 5)) ;; index 5
147 (func (result i32) (i32.const 6))
148 (func (result i32) (i32.const 7))
149 (func (result i32) (i32.const 8))
150 (func (result i32) (i32.const 9)) ;; index 9
151 (func (export "test")
152 (table.init $t0 1 (i32.const 7) (i32.const 0) (i32.const 4))
153 (elem.drop 1)
154 (table.init $t0 3 (i32.const 15) (i32.const 1) (i32.const 3))
155 (elem.drop 3)
156 (table.copy $t0 0 (i32.const 20) (i32.const 15) (i32.const 5))
157 (table.copy $t0 0 (i32.const 21) (i32.const 29) (i32.const 1))
158 (table.copy $t0 0 (i32.const 24) (i32.const 10) (i32.const 1))
159 (table.copy $t0 0 (i32.const 13) (i32.const 11) (i32.const 4))
160 (table.copy $t0 0 (i32.const 19) (i32.const 20) (i32.const 5)))
161 (func (export "check") (param i32) (result i32)
162 (call_indirect $t0 (type 0) (local.get 0)))
163)
164
165(invoke "test")
166(assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
167(assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
168(assert_return (invoke "check" (i32.const 2)) (i32.const 3))
169(assert_return (invoke "check" (i32.const 3)) (i32.const 1))
170(assert_return (invoke "check" (i32.const 4)) (i32.const 4))
171(assert_return (invoke "check" (i32.const 5)) (i32.const 1))
172(assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
173(assert_return (invoke "check" (i32.const 7)) (i32.const 2))
174(assert_return (invoke "check" (i32.const 8)) (i32.const 7))
175(assert_return (invoke "check" (i32.const 9)) (i32.const 1))
176(assert_return (invoke "check" (i32.const 10)) (i32.const 8))
177(assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
178(assert_return (invoke "check" (i32.const 12)) (i32.const 7))
179(assert_trap (invoke "check" (i32.const 13)) "uninitialized element")
180(assert_return (invoke "check" (i32.const 14)) (i32.const 7))
181(assert_return (invoke "check" (i32.const 15)) (i32.const 5))
182(assert_return (invoke "check" (i32.const 16)) (i32.const 2))
183(assert_return (invoke "check" (i32.const 17)) (i32.const 7))
184(assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
185(assert_return (invoke "check" (i32.const 19)) (i32.const 9))
186(assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
187(assert_return (invoke "check" (i32.const 21)) (i32.const 7))
188(assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
189(assert_return (invoke "check" (i32.const 23)) (i32.const 8))
190(assert_return (invoke "check" (i32.const 24)) (i32.const 8))
191(assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
192(assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
193(assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
194(assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
195(assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
196
197(module
198 (type (func (result i32))) ;; type #0
199 (import "a" "ef0" (func (result i32))) ;; index 0
200 (import "a" "ef1" (func (result i32)))
201 (import "a" "ef2" (func (result i32)))
202 (import "a" "ef3" (func (result i32)))
203 (import "a" "ef4" (func (result i32))) ;; index 4
204 (table $t0 30 30 funcref)
205 (table $t1 30 30 funcref)
206 (elem (table $t1) (i32.const 2) func 3 1 4 1)
207 (elem funcref
208 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
209 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
210 (elem funcref
211 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
212 (func (result i32) (i32.const 5)) ;; index 5
213 (func (result i32) (i32.const 6))
214 (func (result i32) (i32.const 7))
215 (func (result i32) (i32.const 8))
216 (func (result i32) (i32.const 9)) ;; index 9
217 (func (export "test")
218 (table.init $t1 1 (i32.const 7) (i32.const 0) (i32.const 4)))
219 (func (export "check") (param i32) (result i32)
220 (call_indirect $t1 (type 0) (local.get 0)))
221)
222
223(invoke "test")
224(assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
225(assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
226(assert_return (invoke "check" (i32.const 2)) (i32.const 3))
227(assert_return (invoke "check" (i32.const 3)) (i32.const 1))
228(assert_return (invoke "check" (i32.const 4)) (i32.const 4))
229(assert_return (invoke "check" (i32.const 5)) (i32.const 1))
230(assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
231(assert_return (invoke "check" (i32.const 7)) (i32.const 2))
232(assert_return (invoke "check" (i32.const 8)) (i32.const 7))
233(assert_return (invoke "check" (i32.const 9)) (i32.const 1))
234(assert_return (invoke "check" (i32.const 10)) (i32.const 8))
235(assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
236(assert_return (invoke "check" (i32.const 12)) (i32.const 7))
237(assert_return (invoke "check" (i32.const 13)) (i32.const 5))
238(assert_return (invoke "check" (i32.const 14)) (i32.const 2))
239(assert_return (invoke "check" (i32.const 15)) (i32.const 3))
240(assert_return (invoke "check" (i32.const 16)) (i32.const 6))
241(assert_trap (invoke "check" (i32.const 17)) "uninitialized element")
242(assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
243(assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
244(assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
245(assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
246(assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
247(assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
248(assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
249(assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
250(assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
251(assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
252(assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
253(assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
254
255(module
256 (type (func (result i32))) ;; type #0
257 (import "a" "ef0" (func (result i32))) ;; index 0
258 (import "a" "ef1" (func (result i32)))
259 (import "a" "ef2" (func (result i32)))
260 (import "a" "ef3" (func (result i32)))
261 (import "a" "ef4" (func (result i32))) ;; index 4
262 (table $t0 30 30 funcref)
263 (table $t1 30 30 funcref)
264 (elem (table $t1) (i32.const 2) func 3 1 4 1)
265 (elem funcref
266 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
267 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
268 (elem funcref
269 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
270 (func (result i32) (i32.const 5)) ;; index 5
271 (func (result i32) (i32.const 6))
272 (func (result i32) (i32.const 7))
273 (func (result i32) (i32.const 8))
274 (func (result i32) (i32.const 9)) ;; index 9
275 (func (export "test")
276 (table.init $t1 3 (i32.const 15) (i32.const 1) (i32.const 3)))
277 (func (export "check") (param i32) (result i32)
278 (call_indirect $t1 (type 0) (local.get 0)))
279)
280
281(invoke "test")
282(assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
283(assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
284(assert_return (invoke "check" (i32.const 2)) (i32.const 3))
285(assert_return (invoke "check" (i32.const 3)) (i32.const 1))
286(assert_return (invoke "check" (i32.const 4)) (i32.const 4))
287(assert_return (invoke "check" (i32.const 5)) (i32.const 1))
288(assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
289(assert_trap (invoke "check" (i32.const 7)) "uninitialized element")
290(assert_trap (invoke "check" (i32.const 8)) "uninitialized element")
291(assert_trap (invoke "check" (i32.const 9)) "uninitialized element")
292(assert_trap (invoke "check" (i32.const 10)) "uninitialized element")
293(assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
294(assert_return (invoke "check" (i32.const 12)) (i32.const 7))
295(assert_return (invoke "check" (i32.const 13)) (i32.const 5))
296(assert_return (invoke "check" (i32.const 14)) (i32.const 2))
297(assert_return (invoke "check" (i32.const 15)) (i32.const 9))
298(assert_return (invoke "check" (i32.const 16)) (i32.const 2))
299(assert_return (invoke "check" (i32.const 17)) (i32.const 7))
300(assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
301(assert_trap (invoke "check" (i32.const 19)) "uninitialized element")
302(assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
303(assert_trap (invoke "check" (i32.const 21)) "uninitialized element")
304(assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
305(assert_trap (invoke "check" (i32.const 23)) "uninitialized element")
306(assert_trap (invoke "check" (i32.const 24)) "uninitialized element")
307(assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
308(assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
309(assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
310(assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
311(assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
312
313(module
314 (type (func (result i32))) ;; type #0
315 (import "a" "ef0" (func (result i32))) ;; index 0
316 (import "a" "ef1" (func (result i32)))
317 (import "a" "ef2" (func (result i32)))
318 (import "a" "ef3" (func (result i32)))
319 (import "a" "ef4" (func (result i32))) ;; index 4
320 (table $t0 30 30 funcref)
321 (table $t1 30 30 funcref)
322 (elem (table $t1) (i32.const 2) func 3 1 4 1)
323 (elem funcref
324 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
325 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
326 (elem funcref
327 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
328 (func (result i32) (i32.const 5)) ;; index 5
329 (func (result i32) (i32.const 6))
330 (func (result i32) (i32.const 7))
331 (func (result i32) (i32.const 8))
332 (func (result i32) (i32.const 9)) ;; index 9
333 (func (export "test")
334 (table.init $t1 1 (i32.const 7) (i32.const 0) (i32.const 4))
335 (elem.drop 1)
336 (table.init $t1 3 (i32.const 15) (i32.const 1) (i32.const 3))
337 (elem.drop 3)
338 (table.copy $t1 1 (i32.const 20) (i32.const 15) (i32.const 5))
339 (table.copy $t1 1 (i32.const 21) (i32.const 29) (i32.const 1))
340 (table.copy $t1 1 (i32.const 24) (i32.const 10) (i32.const 1))
341 (table.copy $t1 1 (i32.const 13) (i32.const 11) (i32.const 4))
342 (table.copy $t1 1 (i32.const 19) (i32.const 20) (i32.const 5)))
343 (func (export "check") (param i32) (result i32)
344 (call_indirect $t1 (type 0) (local.get 0)))
345)
346
347(invoke "test")
348(assert_trap (invoke "check" (i32.const 0)) "uninitialized element")
349(assert_trap (invoke "check" (i32.const 1)) "uninitialized element")
350(assert_return (invoke "check" (i32.const 2)) (i32.const 3))
351(assert_return (invoke "check" (i32.const 3)) (i32.const 1))
352(assert_return (invoke "check" (i32.const 4)) (i32.const 4))
353(assert_return (invoke "check" (i32.const 5)) (i32.const 1))
354(assert_trap (invoke "check" (i32.const 6)) "uninitialized element")
355(assert_return (invoke "check" (i32.const 7)) (i32.const 2))
356(assert_return (invoke "check" (i32.const 8)) (i32.const 7))
357(assert_return (invoke "check" (i32.const 9)) (i32.const 1))
358(assert_return (invoke "check" (i32.const 10)) (i32.const 8))
359(assert_trap (invoke "check" (i32.const 11)) "uninitialized element")
360(assert_return (invoke "check" (i32.const 12)) (i32.const 7))
361(assert_trap (invoke "check" (i32.const 13)) "uninitialized element")
362(assert_return (invoke "check" (i32.const 14)) (i32.const 7))
363(assert_return (invoke "check" (i32.const 15)) (i32.const 5))
364(assert_return (invoke "check" (i32.const 16)) (i32.const 2))
365(assert_return (invoke "check" (i32.const 17)) (i32.const 7))
366(assert_trap (invoke "check" (i32.const 18)) "uninitialized element")
367(assert_return (invoke "check" (i32.const 19)) (i32.const 9))
368(assert_trap (invoke "check" (i32.const 20)) "uninitialized element")
369(assert_return (invoke "check" (i32.const 21)) (i32.const 7))
370(assert_trap (invoke "check" (i32.const 22)) "uninitialized element")
371(assert_return (invoke "check" (i32.const 23)) (i32.const 8))
372(assert_return (invoke "check" (i32.const 24)) (i32.const 8))
373(assert_trap (invoke "check" (i32.const 25)) "uninitialized element")
374(assert_trap (invoke "check" (i32.const 26)) "uninitialized element")
375(assert_trap (invoke "check" (i32.const 27)) "uninitialized element")
376(assert_trap (invoke "check" (i32.const 28)) "uninitialized element")
377(assert_trap (invoke "check" (i32.const 29)) "uninitialized element")
378(assert_invalid
379 (module
380 (func (export "test")
381 (elem.drop 0)))
382 "unknown elem segment 0")
383
384(assert_invalid
385 (module
386 (func (export "test")
387 (table.init 0 (i32.const 12) (i32.const 1) (i32.const 1))))
388 "unknown table 0")
389
390(assert_invalid
391 (module
392 (elem funcref (ref.func 0))
393 (func (result i32) (i32.const 0))
394 (func (export "test")
395 (elem.drop 4)))
396 "unknown elem segment 4")
397
398(assert_invalid
399 (module
400 (elem funcref (ref.func 0))
401 (func (result i32) (i32.const 0))
402 (func (export "test")
403 (table.init 4 (i32.const 12) (i32.const 1) (i32.const 1))))
404 "unknown table 0")
405
406
407(module
408 (table $t0 30 30 funcref)
409 (table $t1 28 28 funcref)
410 (elem (table $t0) (i32.const 2) func 3 1 4 1)
411 (elem funcref
412 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
413 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
414 (elem funcref
415 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
416 (func (result i32) (i32.const 0))
417 (func (result i32) (i32.const 1))
418 (func (result i32) (i32.const 2))
419 (func (result i32) (i32.const 3))
420 (func (result i32) (i32.const 4))
421 (func (result i32) (i32.const 5))
422 (func (result i32) (i32.const 6))
423 (func (result i32) (i32.const 7))
424 (func (result i32) (i32.const 8))
425 (func (result i32) (i32.const 9))
426 (func (export "test")
427 (elem.drop 2)
428 ))
429(invoke "test")
430
431(module
432 (table $t0 30 30 funcref)
433 (table $t1 28 28 funcref)
434 (elem (table $t0) (i32.const 2) func 3 1 4 1)
435 (elem funcref
436 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
437 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
438 (elem funcref
439 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
440 (func (result i32) (i32.const 0))
441 (func (result i32) (i32.const 1))
442 (func (result i32) (i32.const 2))
443 (func (result i32) (i32.const 3))
444 (func (result i32) (i32.const 4))
445 (func (result i32) (i32.const 5))
446 (func (result i32) (i32.const 6))
447 (func (result i32) (i32.const 7))
448 (func (result i32) (i32.const 8))
449 (func (result i32) (i32.const 9))
450 (func (export "test")
451 (table.init 2 (i32.const 12) (i32.const 1) (i32.const 1))
452 ))
453(assert_trap (invoke "test") "out of bounds table access")
454
455(module
456 (table $t0 30 30 funcref)
457 (table $t1 28 28 funcref)
458 (elem (table $t0) (i32.const 2) func 3 1 4 1)
459 (elem funcref
460 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
461 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
462 (elem funcref
463 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
464 (func (result i32) (i32.const 0))
465 (func (result i32) (i32.const 1))
466 (func (result i32) (i32.const 2))
467 (func (result i32) (i32.const 3))
468 (func (result i32) (i32.const 4))
469 (func (result i32) (i32.const 5))
470 (func (result i32) (i32.const 6))
471 (func (result i32) (i32.const 7))
472 (func (result i32) (i32.const 8))
473 (func (result i32) (i32.const 9))
474 (func (export "test")
475 (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))
476 (table.init 1 (i32.const 21) (i32.const 1) (i32.const 1))))
477(invoke "test")
478
479(module
480 (table $t0 30 30 funcref)
481 (table $t1 28 28 funcref)
482 (elem (table $t0) (i32.const 2) func 3 1 4 1)
483 (elem funcref
484 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
485 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
486 (elem funcref
487 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
488 (func (result i32) (i32.const 0))
489 (func (result i32) (i32.const 1))
490 (func (result i32) (i32.const 2))
491 (func (result i32) (i32.const 3))
492 (func (result i32) (i32.const 4))
493 (func (result i32) (i32.const 5))
494 (func (result i32) (i32.const 6))
495 (func (result i32) (i32.const 7))
496 (func (result i32) (i32.const 8))
497 (func (result i32) (i32.const 9))
498 (func (export "test")
499 (elem.drop 1)
500 (elem.drop 1)))
501(invoke "test")
502
503(module
504 (table $t0 30 30 funcref)
505 (table $t1 28 28 funcref)
506 (elem (table $t0) (i32.const 2) func 3 1 4 1)
507 (elem funcref
508 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
509 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
510 (elem funcref
511 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
512 (func (result i32) (i32.const 0))
513 (func (result i32) (i32.const 1))
514 (func (result i32) (i32.const 2))
515 (func (result i32) (i32.const 3))
516 (func (result i32) (i32.const 4))
517 (func (result i32) (i32.const 5))
518 (func (result i32) (i32.const 6))
519 (func (result i32) (i32.const 7))
520 (func (result i32) (i32.const 8))
521 (func (result i32) (i32.const 9))
522 (func (export "test")
523 (elem.drop 1)
524 (table.init 1 (i32.const 12) (i32.const 1) (i32.const 1))))
525(assert_trap (invoke "test") "out of bounds table access")
526
527(module
528 (table $t0 30 30 funcref)
529 (table $t1 28 28 funcref)
530 (elem (table $t0) (i32.const 2) func 3 1 4 1)
531 (elem funcref
532 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
533 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
534 (elem funcref
535 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
536 (func (result i32) (i32.const 0))
537 (func (result i32) (i32.const 1))
538 (func (result i32) (i32.const 2))
539 (func (result i32) (i32.const 3))
540 (func (result i32) (i32.const 4))
541 (func (result i32) (i32.const 5))
542 (func (result i32) (i32.const 6))
543 (func (result i32) (i32.const 7))
544 (func (result i32) (i32.const 8))
545 (func (result i32) (i32.const 9))
546 (func (export "test")
547 (table.init 1 (i32.const 12) (i32.const 0) (i32.const 5))
548 ))
549(assert_trap (invoke "test") "out of bounds table access")
550
551(module
552 (table $t0 30 30 funcref)
553 (table $t1 28 28 funcref)
554 (elem (table $t0) (i32.const 2) func 3 1 4 1)
555 (elem funcref
556 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
557 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
558 (elem funcref
559 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
560 (func (result i32) (i32.const 0))
561 (func (result i32) (i32.const 1))
562 (func (result i32) (i32.const 2))
563 (func (result i32) (i32.const 3))
564 (func (result i32) (i32.const 4))
565 (func (result i32) (i32.const 5))
566 (func (result i32) (i32.const 6))
567 (func (result i32) (i32.const 7))
568 (func (result i32) (i32.const 8))
569 (func (result i32) (i32.const 9))
570 (func (export "test")
571 (table.init 1 (i32.const 12) (i32.const 2) (i32.const 3))
572 ))
573(assert_trap (invoke "test") "out of bounds table access")
574
575(module
576 (table $t0 30 30 funcref)
577 (table $t1 28 28 funcref)
578 (elem (table $t0) (i32.const 2) func 3 1 4 1)
579 (elem funcref
580 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
581 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
582 (elem funcref
583 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
584 (func (result i32) (i32.const 0))
585 (func (result i32) (i32.const 1))
586 (func (result i32) (i32.const 2))
587 (func (result i32) (i32.const 3))
588 (func (result i32) (i32.const 4))
589 (func (result i32) (i32.const 5))
590 (func (result i32) (i32.const 6))
591 (func (result i32) (i32.const 7))
592 (func (result i32) (i32.const 8))
593 (func (result i32) (i32.const 9))
594 (func (export "test")
595 (table.init $t0 1 (i32.const 28) (i32.const 1) (i32.const 3))
596 ))
597(assert_trap (invoke "test") "out of bounds table access")
598
599(module
600 (table $t0 30 30 funcref)
601 (table $t1 28 28 funcref)
602 (elem (table $t0) (i32.const 2) func 3 1 4 1)
603 (elem funcref
604 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
605 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
606 (elem funcref
607 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
608 (func (result i32) (i32.const 0))
609 (func (result i32) (i32.const 1))
610 (func (result i32) (i32.const 2))
611 (func (result i32) (i32.const 3))
612 (func (result i32) (i32.const 4))
613 (func (result i32) (i32.const 5))
614 (func (result i32) (i32.const 6))
615 (func (result i32) (i32.const 7))
616 (func (result i32) (i32.const 8))
617 (func (result i32) (i32.const 9))
618 (func (export "test")
619 (table.init $t0 1 (i32.const 12) (i32.const 4) (i32.const 0))
620 ))
621(invoke "test")
622
623(module
624 (table $t0 30 30 funcref)
625 (table $t1 28 28 funcref)
626 (elem (table $t0) (i32.const 2) func 3 1 4 1)
627 (elem funcref
628 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
629 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
630 (elem funcref
631 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
632 (func (result i32) (i32.const 0))
633 (func (result i32) (i32.const 1))
634 (func (result i32) (i32.const 2))
635 (func (result i32) (i32.const 3))
636 (func (result i32) (i32.const 4))
637 (func (result i32) (i32.const 5))
638 (func (result i32) (i32.const 6))
639 (func (result i32) (i32.const 7))
640 (func (result i32) (i32.const 8))
641 (func (result i32) (i32.const 9))
642 (func (export "test")
643 (table.init $t0 1 (i32.const 12) (i32.const 5) (i32.const 0))
644 ))
645(assert_trap (invoke "test") "out of bounds table access")
646
647(module
648 (table $t0 30 30 funcref)
649 (table $t1 28 28 funcref)
650 (elem (table $t0) (i32.const 2) func 3 1 4 1)
651 (elem funcref
652 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
653 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
654 (elem funcref
655 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
656 (func (result i32) (i32.const 0))
657 (func (result i32) (i32.const 1))
658 (func (result i32) (i32.const 2))
659 (func (result i32) (i32.const 3))
660 (func (result i32) (i32.const 4))
661 (func (result i32) (i32.const 5))
662 (func (result i32) (i32.const 6))
663 (func (result i32) (i32.const 7))
664 (func (result i32) (i32.const 8))
665 (func (result i32) (i32.const 9))
666 (func (export "test")
667 (table.init $t0 1 (i32.const 30) (i32.const 2) (i32.const 0))
668 ))
669(invoke "test")
670
671(module
672 (table $t0 30 30 funcref)
673 (table $t1 28 28 funcref)
674 (elem (table $t0) (i32.const 2) func 3 1 4 1)
675 (elem funcref
676 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
677 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
678 (elem funcref
679 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
680 (func (result i32) (i32.const 0))
681 (func (result i32) (i32.const 1))
682 (func (result i32) (i32.const 2))
683 (func (result i32) (i32.const 3))
684 (func (result i32) (i32.const 4))
685 (func (result i32) (i32.const 5))
686 (func (result i32) (i32.const 6))
687 (func (result i32) (i32.const 7))
688 (func (result i32) (i32.const 8))
689 (func (result i32) (i32.const 9))
690 (func (export "test")
691 (table.init $t0 1 (i32.const 31) (i32.const 2) (i32.const 0))
692 ))
693(assert_trap (invoke "test") "out of bounds table access")
694
695(module
696 (table $t0 30 30 funcref)
697 (table $t1 28 28 funcref)
698 (elem (table $t0) (i32.const 2) func 3 1 4 1)
699 (elem funcref
700 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
701 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
702 (elem funcref
703 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
704 (func (result i32) (i32.const 0))
705 (func (result i32) (i32.const 1))
706 (func (result i32) (i32.const 2))
707 (func (result i32) (i32.const 3))
708 (func (result i32) (i32.const 4))
709 (func (result i32) (i32.const 5))
710 (func (result i32) (i32.const 6))
711 (func (result i32) (i32.const 7))
712 (func (result i32) (i32.const 8))
713 (func (result i32) (i32.const 9))
714 (func (export "test")
715 (table.init $t0 1 (i32.const 30) (i32.const 4) (i32.const 0))
716 ))
717(invoke "test")
718
719(module
720 (table $t0 30 30 funcref)
721 (table $t1 28 28 funcref)
722 (elem (table $t0) (i32.const 2) func 3 1 4 1)
723 (elem funcref
724 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
725 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
726 (elem funcref
727 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
728 (func (result i32) (i32.const 0))
729 (func (result i32) (i32.const 1))
730 (func (result i32) (i32.const 2))
731 (func (result i32) (i32.const 3))
732 (func (result i32) (i32.const 4))
733 (func (result i32) (i32.const 5))
734 (func (result i32) (i32.const 6))
735 (func (result i32) (i32.const 7))
736 (func (result i32) (i32.const 8))
737 (func (result i32) (i32.const 9))
738 (func (export "test")
739 (table.init $t0 1 (i32.const 31) (i32.const 5) (i32.const 0))
740 ))
741(assert_trap (invoke "test") "out of bounds table access")
742
743(module
744 (table $t0 30 30 funcref)
745 (table $t1 28 28 funcref)
746 (elem (table $t1) (i32.const 2) func 3 1 4 1)
747 (elem funcref
748 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
749 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
750 (elem funcref
751 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
752 (func (result i32) (i32.const 0))
753 (func (result i32) (i32.const 1))
754 (func (result i32) (i32.const 2))
755 (func (result i32) (i32.const 3))
756 (func (result i32) (i32.const 4))
757 (func (result i32) (i32.const 5))
758 (func (result i32) (i32.const 6))
759 (func (result i32) (i32.const 7))
760 (func (result i32) (i32.const 8))
761 (func (result i32) (i32.const 9))
762 (func (export "test")
763 (table.init $t1 1 (i32.const 26) (i32.const 1) (i32.const 3))
764 ))
765(assert_trap (invoke "test") "out of bounds table access")
766
767(module
768 (table $t0 30 30 funcref)
769 (table $t1 28 28 funcref)
770 (elem (table $t1) (i32.const 2) func 3 1 4 1)
771 (elem funcref
772 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
773 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
774 (elem funcref
775 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
776 (func (result i32) (i32.const 0))
777 (func (result i32) (i32.const 1))
778 (func (result i32) (i32.const 2))
779 (func (result i32) (i32.const 3))
780 (func (result i32) (i32.const 4))
781 (func (result i32) (i32.const 5))
782 (func (result i32) (i32.const 6))
783 (func (result i32) (i32.const 7))
784 (func (result i32) (i32.const 8))
785 (func (result i32) (i32.const 9))
786 (func (export "test")
787 (table.init $t1 1 (i32.const 12) (i32.const 4) (i32.const 0))
788 ))
789(invoke "test")
790
791(module
792 (table $t0 30 30 funcref)
793 (table $t1 28 28 funcref)
794 (elem (table $t1) (i32.const 2) func 3 1 4 1)
795 (elem funcref
796 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
797 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
798 (elem funcref
799 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
800 (func (result i32) (i32.const 0))
801 (func (result i32) (i32.const 1))
802 (func (result i32) (i32.const 2))
803 (func (result i32) (i32.const 3))
804 (func (result i32) (i32.const 4))
805 (func (result i32) (i32.const 5))
806 (func (result i32) (i32.const 6))
807 (func (result i32) (i32.const 7))
808 (func (result i32) (i32.const 8))
809 (func (result i32) (i32.const 9))
810 (func (export "test")
811 (table.init $t1 1 (i32.const 12) (i32.const 5) (i32.const 0))
812 ))
813(assert_trap (invoke "test") "out of bounds table access")
814
815(module
816 (table $t0 30 30 funcref)
817 (table $t1 28 28 funcref)
818 (elem (table $t1) (i32.const 2) func 3 1 4 1)
819 (elem funcref
820 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
821 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
822 (elem funcref
823 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
824 (func (result i32) (i32.const 0))
825 (func (result i32) (i32.const 1))
826 (func (result i32) (i32.const 2))
827 (func (result i32) (i32.const 3))
828 (func (result i32) (i32.const 4))
829 (func (result i32) (i32.const 5))
830 (func (result i32) (i32.const 6))
831 (func (result i32) (i32.const 7))
832 (func (result i32) (i32.const 8))
833 (func (result i32) (i32.const 9))
834 (func (export "test")
835 (table.init $t1 1 (i32.const 28) (i32.const 2) (i32.const 0))
836 ))
837(invoke "test")
838
839(module
840 (table $t0 30 30 funcref)
841 (table $t1 28 28 funcref)
842 (elem (table $t1) (i32.const 2) func 3 1 4 1)
843 (elem funcref
844 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
845 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
846 (elem funcref
847 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
848 (func (result i32) (i32.const 0))
849 (func (result i32) (i32.const 1))
850 (func (result i32) (i32.const 2))
851 (func (result i32) (i32.const 3))
852 (func (result i32) (i32.const 4))
853 (func (result i32) (i32.const 5))
854 (func (result i32) (i32.const 6))
855 (func (result i32) (i32.const 7))
856 (func (result i32) (i32.const 8))
857 (func (result i32) (i32.const 9))
858 (func (export "test")
859 (table.init $t1 1 (i32.const 29) (i32.const 2) (i32.const 0))
860 ))
861(assert_trap (invoke "test") "out of bounds table access")
862
863(module
864 (table $t0 30 30 funcref)
865 (table $t1 28 28 funcref)
866 (elem (table $t1) (i32.const 2) func 3 1 4 1)
867 (elem funcref
868 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
869 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
870 (elem funcref
871 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
872 (func (result i32) (i32.const 0))
873 (func (result i32) (i32.const 1))
874 (func (result i32) (i32.const 2))
875 (func (result i32) (i32.const 3))
876 (func (result i32) (i32.const 4))
877 (func (result i32) (i32.const 5))
878 (func (result i32) (i32.const 6))
879 (func (result i32) (i32.const 7))
880 (func (result i32) (i32.const 8))
881 (func (result i32) (i32.const 9))
882 (func (export "test")
883 (table.init $t1 1 (i32.const 28) (i32.const 4) (i32.const 0))
884 ))
885(invoke "test")
886
887(module
888 (table $t0 30 30 funcref)
889 (table $t1 28 28 funcref)
890 (elem (table $t1) (i32.const 2) func 3 1 4 1)
891 (elem funcref
892 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
893 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
894 (elem funcref
895 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
896 (func (result i32) (i32.const 0))
897 (func (result i32) (i32.const 1))
898 (func (result i32) (i32.const 2))
899 (func (result i32) (i32.const 3))
900 (func (result i32) (i32.const 4))
901 (func (result i32) (i32.const 5))
902 (func (result i32) (i32.const 6))
903 (func (result i32) (i32.const 7))
904 (func (result i32) (i32.const 8))
905 (func (result i32) (i32.const 9))
906 (func (export "test")
907 (table.init $t1 1 (i32.const 29) (i32.const 5) (i32.const 0))
908 ))
909(assert_trap (invoke "test") "out of bounds table access")
910
911(assert_invalid
912 (module
913 (table 10 funcref)
914 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
915 (func $f0)
916 (func (export "test")
917 (table.init 0 (i32.const 1) (i32.const 1) (f32.const 1))))
918 "type mismatch")
919
920(assert_invalid
921 (module
922 (table 10 funcref)
923 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
924 (func $f0)
925 (func (export "test")
926 (table.init 0 (i32.const 1) (i32.const 1) (i64.const 1))))
927 "type mismatch")
928
929(assert_invalid
930 (module
931 (table 10 funcref)
932 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
933 (func $f0)
934 (func (export "test")
935 (table.init 0 (i32.const 1) (i32.const 1) (f64.const 1))))
936 "type mismatch")
937
938(assert_invalid
939 (module
940 (table 10 funcref)
941 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
942 (func $f0)
943 (func (export "test")
944 (table.init 0 (i32.const 1) (f32.const 1) (i32.const 1))))
945 "type mismatch")
946
947(assert_invalid
948 (module
949 (table 10 funcref)
950 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
951 (func $f0)
952 (func (export "test")
953 (table.init 0 (i32.const 1) (f32.const 1) (f32.const 1))))
954 "type mismatch")
955
956(assert_invalid
957 (module
958 (table 10 funcref)
959 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
960 (func $f0)
961 (func (export "test")
962 (table.init 0 (i32.const 1) (f32.const 1) (i64.const 1))))
963 "type mismatch")
964
965(assert_invalid
966 (module
967 (table 10 funcref)
968 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
969 (func $f0)
970 (func (export "test")
971 (table.init 0 (i32.const 1) (f32.const 1) (f64.const 1))))
972 "type mismatch")
973
974(assert_invalid
975 (module
976 (table 10 funcref)
977 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
978 (func $f0)
979 (func (export "test")
980 (table.init 0 (i32.const 1) (i64.const 1) (i32.const 1))))
981 "type mismatch")
982
983(assert_invalid
984 (module
985 (table 10 funcref)
986 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
987 (func $f0)
988 (func (export "test")
989 (table.init 0 (i32.const 1) (i64.const 1) (f32.const 1))))
990 "type mismatch")
991
992(assert_invalid
993 (module
994 (table 10 funcref)
995 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
996 (func $f0)
997 (func (export "test")
998 (table.init 0 (i32.const 1) (i64.const 1) (i64.const 1))))
999 "type mismatch")
1000
1001(assert_invalid
1002 (module
1003 (table 10 funcref)
1004 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1005 (func $f0)
1006 (func (export "test")
1007 (table.init 0 (i32.const 1) (i64.const 1) (f64.const 1))))
1008 "type mismatch")
1009
1010(assert_invalid
1011 (module
1012 (table 10 funcref)
1013 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1014 (func $f0)
1015 (func (export "test")
1016 (table.init 0 (i32.const 1) (f64.const 1) (i32.const 1))))
1017 "type mismatch")
1018
1019(assert_invalid
1020 (module
1021 (table 10 funcref)
1022 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1023 (func $f0)
1024 (func (export "test")
1025 (table.init 0 (i32.const 1) (f64.const 1) (f32.const 1))))
1026 "type mismatch")
1027
1028(assert_invalid
1029 (module
1030 (table 10 funcref)
1031 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1032 (func $f0)
1033 (func (export "test")
1034 (table.init 0 (i32.const 1) (f64.const 1) (i64.const 1))))
1035 "type mismatch")
1036
1037(assert_invalid
1038 (module
1039 (table 10 funcref)
1040 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1041 (func $f0)
1042 (func (export "test")
1043 (table.init 0 (i32.const 1) (f64.const 1) (f64.const 1))))
1044 "type mismatch")
1045
1046(assert_invalid
1047 (module
1048 (table 10 funcref)
1049 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1050 (func $f0)
1051 (func (export "test")
1052 (table.init 0 (f32.const 1) (i32.const 1) (i32.const 1))))
1053 "type mismatch")
1054
1055(assert_invalid
1056 (module
1057 (table 10 funcref)
1058 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1059 (func $f0)
1060 (func (export "test")
1061 (table.init 0 (f32.const 1) (i32.const 1) (f32.const 1))))
1062 "type mismatch")
1063
1064(assert_invalid
1065 (module
1066 (table 10 funcref)
1067 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1068 (func $f0)
1069 (func (export "test")
1070 (table.init 0 (f32.const 1) (i32.const 1) (i64.const 1))))
1071 "type mismatch")
1072
1073(assert_invalid
1074 (module
1075 (table 10 funcref)
1076 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1077 (func $f0)
1078 (func (export "test")
1079 (table.init 0 (f32.const 1) (i32.const 1) (f64.const 1))))
1080 "type mismatch")
1081
1082(assert_invalid
1083 (module
1084 (table 10 funcref)
1085 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1086 (func $f0)
1087 (func (export "test")
1088 (table.init 0 (f32.const 1) (f32.const 1) (i32.const 1))))
1089 "type mismatch")
1090
1091(assert_invalid
1092 (module
1093 (table 10 funcref)
1094 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1095 (func $f0)
1096 (func (export "test")
1097 (table.init 0 (f32.const 1) (f32.const 1) (f32.const 1))))
1098 "type mismatch")
1099
1100(assert_invalid
1101 (module
1102 (table 10 funcref)
1103 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1104 (func $f0)
1105 (func (export "test")
1106 (table.init 0 (f32.const 1) (f32.const 1) (i64.const 1))))
1107 "type mismatch")
1108
1109(assert_invalid
1110 (module
1111 (table 10 funcref)
1112 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1113 (func $f0)
1114 (func (export "test")
1115 (table.init 0 (f32.const 1) (f32.const 1) (f64.const 1))))
1116 "type mismatch")
1117
1118(assert_invalid
1119 (module
1120 (table 10 funcref)
1121 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1122 (func $f0)
1123 (func (export "test")
1124 (table.init 0 (f32.const 1) (i64.const 1) (i32.const 1))))
1125 "type mismatch")
1126
1127(assert_invalid
1128 (module
1129 (table 10 funcref)
1130 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1131 (func $f0)
1132 (func (export "test")
1133 (table.init 0 (f32.const 1) (i64.const 1) (f32.const 1))))
1134 "type mismatch")
1135
1136(assert_invalid
1137 (module
1138 (table 10 funcref)
1139 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1140 (func $f0)
1141 (func (export "test")
1142 (table.init 0 (f32.const 1) (i64.const 1) (i64.const 1))))
1143 "type mismatch")
1144
1145(assert_invalid
1146 (module
1147 (table 10 funcref)
1148 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1149 (func $f0)
1150 (func (export "test")
1151 (table.init 0 (f32.const 1) (i64.const 1) (f64.const 1))))
1152 "type mismatch")
1153
1154(assert_invalid
1155 (module
1156 (table 10 funcref)
1157 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1158 (func $f0)
1159 (func (export "test")
1160 (table.init 0 (f32.const 1) (f64.const 1) (i32.const 1))))
1161 "type mismatch")
1162
1163(assert_invalid
1164 (module
1165 (table 10 funcref)
1166 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1167 (func $f0)
1168 (func (export "test")
1169 (table.init 0 (f32.const 1) (f64.const 1) (f32.const 1))))
1170 "type mismatch")
1171
1172(assert_invalid
1173 (module
1174 (table 10 funcref)
1175 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1176 (func $f0)
1177 (func (export "test")
1178 (table.init 0 (f32.const 1) (f64.const 1) (i64.const 1))))
1179 "type mismatch")
1180
1181(assert_invalid
1182 (module
1183 (table 10 funcref)
1184 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1185 (func $f0)
1186 (func (export "test")
1187 (table.init 0 (f32.const 1) (f64.const 1) (f64.const 1))))
1188 "type mismatch")
1189
1190(assert_invalid
1191 (module
1192 (table 10 funcref)
1193 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1194 (func $f0)
1195 (func (export "test")
1196 (table.init 0 (i64.const 1) (i32.const 1) (i32.const 1))))
1197 "type mismatch")
1198
1199(assert_invalid
1200 (module
1201 (table 10 funcref)
1202 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1203 (func $f0)
1204 (func (export "test")
1205 (table.init 0 (i64.const 1) (i32.const 1) (f32.const 1))))
1206 "type mismatch")
1207
1208(assert_invalid
1209 (module
1210 (table 10 funcref)
1211 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1212 (func $f0)
1213 (func (export "test")
1214 (table.init 0 (i64.const 1) (i32.const 1) (i64.const 1))))
1215 "type mismatch")
1216
1217(assert_invalid
1218 (module
1219 (table 10 funcref)
1220 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1221 (func $f0)
1222 (func (export "test")
1223 (table.init 0 (i64.const 1) (i32.const 1) (f64.const 1))))
1224 "type mismatch")
1225
1226(assert_invalid
1227 (module
1228 (table 10 funcref)
1229 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1230 (func $f0)
1231 (func (export "test")
1232 (table.init 0 (i64.const 1) (f32.const 1) (i32.const 1))))
1233 "type mismatch")
1234
1235(assert_invalid
1236 (module
1237 (table 10 funcref)
1238 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1239 (func $f0)
1240 (func (export "test")
1241 (table.init 0 (i64.const 1) (f32.const 1) (f32.const 1))))
1242 "type mismatch")
1243
1244(assert_invalid
1245 (module
1246 (table 10 funcref)
1247 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1248 (func $f0)
1249 (func (export "test")
1250 (table.init 0 (i64.const 1) (f32.const 1) (i64.const 1))))
1251 "type mismatch")
1252
1253(assert_invalid
1254 (module
1255 (table 10 funcref)
1256 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1257 (func $f0)
1258 (func (export "test")
1259 (table.init 0 (i64.const 1) (f32.const 1) (f64.const 1))))
1260 "type mismatch")
1261
1262(assert_invalid
1263 (module
1264 (table 10 funcref)
1265 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1266 (func $f0)
1267 (func (export "test")
1268 (table.init 0 (i64.const 1) (i64.const 1) (i32.const 1))))
1269 "type mismatch")
1270
1271(assert_invalid
1272 (module
1273 (table 10 funcref)
1274 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1275 (func $f0)
1276 (func (export "test")
1277 (table.init 0 (i64.const 1) (i64.const 1) (f32.const 1))))
1278 "type mismatch")
1279
1280(assert_invalid
1281 (module
1282 (table 10 funcref)
1283 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1284 (func $f0)
1285 (func (export "test")
1286 (table.init 0 (i64.const 1) (i64.const 1) (i64.const 1))))
1287 "type mismatch")
1288
1289(assert_invalid
1290 (module
1291 (table 10 funcref)
1292 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1293 (func $f0)
1294 (func (export "test")
1295 (table.init 0 (i64.const 1) (i64.const 1) (f64.const 1))))
1296 "type mismatch")
1297
1298(assert_invalid
1299 (module
1300 (table 10 funcref)
1301 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1302 (func $f0)
1303 (func (export "test")
1304 (table.init 0 (i64.const 1) (f64.const 1) (i32.const 1))))
1305 "type mismatch")
1306
1307(assert_invalid
1308 (module
1309 (table 10 funcref)
1310 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1311 (func $f0)
1312 (func (export "test")
1313 (table.init 0 (i64.const 1) (f64.const 1) (f32.const 1))))
1314 "type mismatch")
1315
1316(assert_invalid
1317 (module
1318 (table 10 funcref)
1319 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1320 (func $f0)
1321 (func (export "test")
1322 (table.init 0 (i64.const 1) (f64.const 1) (i64.const 1))))
1323 "type mismatch")
1324
1325(assert_invalid
1326 (module
1327 (table 10 funcref)
1328 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1329 (func $f0)
1330 (func (export "test")
1331 (table.init 0 (i64.const 1) (f64.const 1) (f64.const 1))))
1332 "type mismatch")
1333
1334(assert_invalid
1335 (module
1336 (table 10 funcref)
1337 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1338 (func $f0)
1339 (func (export "test")
1340 (table.init 0 (f64.const 1) (i32.const 1) (i32.const 1))))
1341 "type mismatch")
1342
1343(assert_invalid
1344 (module
1345 (table 10 funcref)
1346 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1347 (func $f0)
1348 (func (export "test")
1349 (table.init 0 (f64.const 1) (i32.const 1) (f32.const 1))))
1350 "type mismatch")
1351
1352(assert_invalid
1353 (module
1354 (table 10 funcref)
1355 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1356 (func $f0)
1357 (func (export "test")
1358 (table.init 0 (f64.const 1) (i32.const 1) (i64.const 1))))
1359 "type mismatch")
1360
1361(assert_invalid
1362 (module
1363 (table 10 funcref)
1364 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1365 (func $f0)
1366 (func (export "test")
1367 (table.init 0 (f64.const 1) (i32.const 1) (f64.const 1))))
1368 "type mismatch")
1369
1370(assert_invalid
1371 (module
1372 (table 10 funcref)
1373 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1374 (func $f0)
1375 (func (export "test")
1376 (table.init 0 (f64.const 1) (f32.const 1) (i32.const 1))))
1377 "type mismatch")
1378
1379(assert_invalid
1380 (module
1381 (table 10 funcref)
1382 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1383 (func $f0)
1384 (func (export "test")
1385 (table.init 0 (f64.const 1) (f32.const 1) (f32.const 1))))
1386 "type mismatch")
1387
1388(assert_invalid
1389 (module
1390 (table 10 funcref)
1391 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1392 (func $f0)
1393 (func (export "test")
1394 (table.init 0 (f64.const 1) (f32.const 1) (i64.const 1))))
1395 "type mismatch")
1396
1397(assert_invalid
1398 (module
1399 (table 10 funcref)
1400 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1401 (func $f0)
1402 (func (export "test")
1403 (table.init 0 (f64.const 1) (f32.const 1) (f64.const 1))))
1404 "type mismatch")
1405
1406(assert_invalid
1407 (module
1408 (table 10 funcref)
1409 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1410 (func $f0)
1411 (func (export "test")
1412 (table.init 0 (f64.const 1) (i64.const 1) (i32.const 1))))
1413 "type mismatch")
1414
1415(assert_invalid
1416 (module
1417 (table 10 funcref)
1418 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1419 (func $f0)
1420 (func (export "test")
1421 (table.init 0 (f64.const 1) (i64.const 1) (f32.const 1))))
1422 "type mismatch")
1423
1424(assert_invalid
1425 (module
1426 (table 10 funcref)
1427 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1428 (func $f0)
1429 (func (export "test")
1430 (table.init 0 (f64.const 1) (i64.const 1) (i64.const 1))))
1431 "type mismatch")
1432
1433(assert_invalid
1434 (module
1435 (table 10 funcref)
1436 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1437 (func $f0)
1438 (func (export "test")
1439 (table.init 0 (f64.const 1) (i64.const 1) (f64.const 1))))
1440 "type mismatch")
1441
1442(assert_invalid
1443 (module
1444 (table 10 funcref)
1445 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1446 (func $f0)
1447 (func (export "test")
1448 (table.init 0 (f64.const 1) (f64.const 1) (i32.const 1))))
1449 "type mismatch")
1450
1451(assert_invalid
1452 (module
1453 (table 10 funcref)
1454 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1455 (func $f0)
1456 (func (export "test")
1457 (table.init 0 (f64.const 1) (f64.const 1) (f32.const 1))))
1458 "type mismatch")
1459
1460(assert_invalid
1461 (module
1462 (table 10 funcref)
1463 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1464 (func $f0)
1465 (func (export "test")
1466 (table.init 0 (f64.const 1) (f64.const 1) (i64.const 1))))
1467 "type mismatch")
1468
1469(assert_invalid
1470 (module
1471 (table 10 funcref)
1472 (elem funcref (ref.func $f0) (ref.func $f0) (ref.func $f0))
1473 (func $f0)
1474 (func (export "test")
1475 (table.init 0 (f64.const 1) (f64.const 1) (f64.const 1))))
1476 "type mismatch")
1477
1478(module
1479 (type (func (result i32)))
1480 (table 32 64 funcref)
1481 (elem funcref
1482 (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1483 (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1484 (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1485 (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1486 (func $f0 (export "f0") (result i32) (i32.const 0))
1487 (func $f1 (export "f1") (result i32) (i32.const 1))
1488 (func $f2 (export "f2") (result i32) (i32.const 2))
1489 (func $f3 (export "f3") (result i32) (i32.const 3))
1490 (func $f4 (export "f4") (result i32) (i32.const 4))
1491 (func $f5 (export "f5") (result i32) (i32.const 5))
1492 (func $f6 (export "f6") (result i32) (i32.const 6))
1493 (func $f7 (export "f7") (result i32) (i32.const 7))
1494 (func $f8 (export "f8") (result i32) (i32.const 8))
1495 (func $f9 (export "f9") (result i32) (i32.const 9))
1496 (func $f10 (export "f10") (result i32) (i32.const 10))
1497 (func $f11 (export "f11") (result i32) (i32.const 11))
1498 (func $f12 (export "f12") (result i32) (i32.const 12))
1499 (func $f13 (export "f13") (result i32) (i32.const 13))
1500 (func $f14 (export "f14") (result i32) (i32.const 14))
1501 (func $f15 (export "f15") (result i32) (i32.const 15))
1502 (func (export "test") (param $n i32) (result i32)
1503 (call_indirect (type 0) (local.get $n)))
1504 (func (export "run") (param $offs i32) (param $len i32)
1505 (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1506(assert_trap (invoke "run" (i32.const 24) (i32.const 16)) "out of bounds table access")
1507(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1508(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1509(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1510(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1511(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1512(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1513(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1514(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1515(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1516(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1517(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1518(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1519(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1520(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1521(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1522(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1523(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1524(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1525(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1526(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1527(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1528(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1529(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1530(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1531(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1532(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1533(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1534(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1535(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1536(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1537(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1538(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1539
1540(module
1541 (type (func (result i32)))
1542 (table 32 64 funcref)
1543 (elem funcref
1544 (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1545 (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1546 (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1547 (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1548 (func $f0 (export "f0") (result i32) (i32.const 0))
1549 (func $f1 (export "f1") (result i32) (i32.const 1))
1550 (func $f2 (export "f2") (result i32) (i32.const 2))
1551 (func $f3 (export "f3") (result i32) (i32.const 3))
1552 (func $f4 (export "f4") (result i32) (i32.const 4))
1553 (func $f5 (export "f5") (result i32) (i32.const 5))
1554 (func $f6 (export "f6") (result i32) (i32.const 6))
1555 (func $f7 (export "f7") (result i32) (i32.const 7))
1556 (func $f8 (export "f8") (result i32) (i32.const 8))
1557 (func $f9 (export "f9") (result i32) (i32.const 9))
1558 (func $f10 (export "f10") (result i32) (i32.const 10))
1559 (func $f11 (export "f11") (result i32) (i32.const 11))
1560 (func $f12 (export "f12") (result i32) (i32.const 12))
1561 (func $f13 (export "f13") (result i32) (i32.const 13))
1562 (func $f14 (export "f14") (result i32) (i32.const 14))
1563 (func $f15 (export "f15") (result i32) (i32.const 15))
1564 (func (export "test") (param $n i32) (result i32)
1565 (call_indirect (type 0) (local.get $n)))
1566 (func (export "run") (param $offs i32) (param $len i32)
1567 (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1568(assert_trap (invoke "run" (i32.const 25) (i32.const 16)) "out of bounds table access")
1569(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1570(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1571(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1572(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1573(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1574(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1575(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1576(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1577(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1578(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1579(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1580(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1581(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1582(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1583(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1584(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1585(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1586(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1587(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1588(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1589(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1590(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1591(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1592(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1593(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1594(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1595(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1596(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1597(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1598(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1599(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1600(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1601
1602(module
1603 (type (func (result i32)))
1604 (table 160 320 funcref)
1605 (elem funcref
1606 (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1607 (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1608 (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1609 (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1610 (func $f0 (export "f0") (result i32) (i32.const 0))
1611 (func $f1 (export "f1") (result i32) (i32.const 1))
1612 (func $f2 (export "f2") (result i32) (i32.const 2))
1613 (func $f3 (export "f3") (result i32) (i32.const 3))
1614 (func $f4 (export "f4") (result i32) (i32.const 4))
1615 (func $f5 (export "f5") (result i32) (i32.const 5))
1616 (func $f6 (export "f6") (result i32) (i32.const 6))
1617 (func $f7 (export "f7") (result i32) (i32.const 7))
1618 (func $f8 (export "f8") (result i32) (i32.const 8))
1619 (func $f9 (export "f9") (result i32) (i32.const 9))
1620 (func $f10 (export "f10") (result i32) (i32.const 10))
1621 (func $f11 (export "f11") (result i32) (i32.const 11))
1622 (func $f12 (export "f12") (result i32) (i32.const 12))
1623 (func $f13 (export "f13") (result i32) (i32.const 13))
1624 (func $f14 (export "f14") (result i32) (i32.const 14))
1625 (func $f15 (export "f15") (result i32) (i32.const 15))
1626 (func (export "test") (param $n i32) (result i32)
1627 (call_indirect (type 0) (local.get $n)))
1628 (func (export "run") (param $offs i32) (param $len i32)
1629 (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1630(assert_trap (invoke "run" (i32.const 96) (i32.const 32)) "out of bounds table access")
1631(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1632(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1633(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1634(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1635(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1636(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1637(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1638(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1639(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1640(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1641(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1642(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1643(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1644(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1645(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1646(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1647(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1648(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1649(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1650(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1651(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1652(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1653(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1654(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1655(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1656(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1657(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1658(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1659(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1660(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1661(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1662(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1663(assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
1664(assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
1665(assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
1666(assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
1667(assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
1668(assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
1669(assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
1670(assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
1671(assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
1672(assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
1673(assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
1674(assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
1675(assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
1676(assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
1677(assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
1678(assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
1679(assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
1680(assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
1681(assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
1682(assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
1683(assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
1684(assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
1685(assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
1686(assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
1687(assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
1688(assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
1689(assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
1690(assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
1691(assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
1692(assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
1693(assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
1694(assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
1695(assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
1696(assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
1697(assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
1698(assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
1699(assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
1700(assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
1701(assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
1702(assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
1703(assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
1704(assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
1705(assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
1706(assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
1707(assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
1708(assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
1709(assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
1710(assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
1711(assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
1712(assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
1713(assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
1714(assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
1715(assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
1716(assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
1717(assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
1718(assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
1719(assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
1720(assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
1721(assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
1722(assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
1723(assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
1724(assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
1725(assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
1726(assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
1727(assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
1728(assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
1729(assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
1730(assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
1731(assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
1732(assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
1733(assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
1734(assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
1735(assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
1736(assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
1737(assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
1738(assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
1739(assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
1740(assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
1741(assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
1742(assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
1743(assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
1744(assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
1745(assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
1746(assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
1747(assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
1748(assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
1749(assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
1750(assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
1751(assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
1752(assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
1753(assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
1754(assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
1755(assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
1756(assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
1757(assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
1758(assert_trap (invoke "test" (i32.const 127)) "uninitialized element")
1759(assert_trap (invoke "test" (i32.const 128)) "uninitialized element")
1760(assert_trap (invoke "test" (i32.const 129)) "uninitialized element")
1761(assert_trap (invoke "test" (i32.const 130)) "uninitialized element")
1762(assert_trap (invoke "test" (i32.const 131)) "uninitialized element")
1763(assert_trap (invoke "test" (i32.const 132)) "uninitialized element")
1764(assert_trap (invoke "test" (i32.const 133)) "uninitialized element")
1765(assert_trap (invoke "test" (i32.const 134)) "uninitialized element")
1766(assert_trap (invoke "test" (i32.const 135)) "uninitialized element")
1767(assert_trap (invoke "test" (i32.const 136)) "uninitialized element")
1768(assert_trap (invoke "test" (i32.const 137)) "uninitialized element")
1769(assert_trap (invoke "test" (i32.const 138)) "uninitialized element")
1770(assert_trap (invoke "test" (i32.const 139)) "uninitialized element")
1771(assert_trap (invoke "test" (i32.const 140)) "uninitialized element")
1772(assert_trap (invoke "test" (i32.const 141)) "uninitialized element")
1773(assert_trap (invoke "test" (i32.const 142)) "uninitialized element")
1774(assert_trap (invoke "test" (i32.const 143)) "uninitialized element")
1775(assert_trap (invoke "test" (i32.const 144)) "uninitialized element")
1776(assert_trap (invoke "test" (i32.const 145)) "uninitialized element")
1777(assert_trap (invoke "test" (i32.const 146)) "uninitialized element")
1778(assert_trap (invoke "test" (i32.const 147)) "uninitialized element")
1779(assert_trap (invoke "test" (i32.const 148)) "uninitialized element")
1780(assert_trap (invoke "test" (i32.const 149)) "uninitialized element")
1781(assert_trap (invoke "test" (i32.const 150)) "uninitialized element")
1782(assert_trap (invoke "test" (i32.const 151)) "uninitialized element")
1783(assert_trap (invoke "test" (i32.const 152)) "uninitialized element")
1784(assert_trap (invoke "test" (i32.const 153)) "uninitialized element")
1785(assert_trap (invoke "test" (i32.const 154)) "uninitialized element")
1786(assert_trap (invoke "test" (i32.const 155)) "uninitialized element")
1787(assert_trap (invoke "test" (i32.const 156)) "uninitialized element")
1788(assert_trap (invoke "test" (i32.const 157)) "uninitialized element")
1789(assert_trap (invoke "test" (i32.const 158)) "uninitialized element")
1790(assert_trap (invoke "test" (i32.const 159)) "uninitialized element")
1791
1792(module
1793 (type (func (result i32)))
1794 (table 160 320 funcref)
1795 (elem funcref
1796 (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1797 (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1798 (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1799 (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1800 (func $f0 (export "f0") (result i32) (i32.const 0))
1801 (func $f1 (export "f1") (result i32) (i32.const 1))
1802 (func $f2 (export "f2") (result i32) (i32.const 2))
1803 (func $f3 (export "f3") (result i32) (i32.const 3))
1804 (func $f4 (export "f4") (result i32) (i32.const 4))
1805 (func $f5 (export "f5") (result i32) (i32.const 5))
1806 (func $f6 (export "f6") (result i32) (i32.const 6))
1807 (func $f7 (export "f7") (result i32) (i32.const 7))
1808 (func $f8 (export "f8") (result i32) (i32.const 8))
1809 (func $f9 (export "f9") (result i32) (i32.const 9))
1810 (func $f10 (export "f10") (result i32) (i32.const 10))
1811 (func $f11 (export "f11") (result i32) (i32.const 11))
1812 (func $f12 (export "f12") (result i32) (i32.const 12))
1813 (func $f13 (export "f13") (result i32) (i32.const 13))
1814 (func $f14 (export "f14") (result i32) (i32.const 14))
1815 (func $f15 (export "f15") (result i32) (i32.const 15))
1816 (func (export "test") (param $n i32) (result i32)
1817 (call_indirect (type 0) (local.get $n)))
1818 (func (export "run") (param $offs i32) (param $len i32)
1819 (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
1820(assert_trap (invoke "run" (i32.const 97) (i32.const 31)) "out of bounds table access")
1821(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
1822(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
1823(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
1824(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
1825(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
1826(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
1827(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
1828(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
1829(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
1830(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
1831(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
1832(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
1833(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
1834(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
1835(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
1836(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
1837(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
1838(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
1839(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
1840(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
1841(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
1842(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
1843(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
1844(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
1845(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
1846(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
1847(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
1848(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
1849(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
1850(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
1851(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
1852(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
1853(assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
1854(assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
1855(assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
1856(assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
1857(assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
1858(assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
1859(assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
1860(assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
1861(assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
1862(assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
1863(assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
1864(assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
1865(assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
1866(assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
1867(assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
1868(assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
1869(assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
1870(assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
1871(assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
1872(assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
1873(assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
1874(assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
1875(assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
1876(assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
1877(assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
1878(assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
1879(assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
1880(assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
1881(assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
1882(assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
1883(assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
1884(assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
1885(assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
1886(assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
1887(assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
1888(assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
1889(assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
1890(assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
1891(assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
1892(assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
1893(assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
1894(assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
1895(assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
1896(assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
1897(assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
1898(assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
1899(assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
1900(assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
1901(assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
1902(assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
1903(assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
1904(assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
1905(assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
1906(assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
1907(assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
1908(assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
1909(assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
1910(assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
1911(assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
1912(assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
1913(assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
1914(assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
1915(assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
1916(assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
1917(assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
1918(assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
1919(assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
1920(assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
1921(assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
1922(assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
1923(assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
1924(assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
1925(assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
1926(assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
1927(assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
1928(assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
1929(assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
1930(assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
1931(assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
1932(assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
1933(assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
1934(assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
1935(assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
1936(assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
1937(assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
1938(assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
1939(assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
1940(assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
1941(assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
1942(assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
1943(assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
1944(assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
1945(assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
1946(assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
1947(assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
1948(assert_trap (invoke "test" (i32.const 127)) "uninitialized element")
1949(assert_trap (invoke "test" (i32.const 128)) "uninitialized element")
1950(assert_trap (invoke "test" (i32.const 129)) "uninitialized element")
1951(assert_trap (invoke "test" (i32.const 130)) "uninitialized element")
1952(assert_trap (invoke "test" (i32.const 131)) "uninitialized element")
1953(assert_trap (invoke "test" (i32.const 132)) "uninitialized element")
1954(assert_trap (invoke "test" (i32.const 133)) "uninitialized element")
1955(assert_trap (invoke "test" (i32.const 134)) "uninitialized element")
1956(assert_trap (invoke "test" (i32.const 135)) "uninitialized element")
1957(assert_trap (invoke "test" (i32.const 136)) "uninitialized element")
1958(assert_trap (invoke "test" (i32.const 137)) "uninitialized element")
1959(assert_trap (invoke "test" (i32.const 138)) "uninitialized element")
1960(assert_trap (invoke "test" (i32.const 139)) "uninitialized element")
1961(assert_trap (invoke "test" (i32.const 140)) "uninitialized element")
1962(assert_trap (invoke "test" (i32.const 141)) "uninitialized element")
1963(assert_trap (invoke "test" (i32.const 142)) "uninitialized element")
1964(assert_trap (invoke "test" (i32.const 143)) "uninitialized element")
1965(assert_trap (invoke "test" (i32.const 144)) "uninitialized element")
1966(assert_trap (invoke "test" (i32.const 145)) "uninitialized element")
1967(assert_trap (invoke "test" (i32.const 146)) "uninitialized element")
1968(assert_trap (invoke "test" (i32.const 147)) "uninitialized element")
1969(assert_trap (invoke "test" (i32.const 148)) "uninitialized element")
1970(assert_trap (invoke "test" (i32.const 149)) "uninitialized element")
1971(assert_trap (invoke "test" (i32.const 150)) "uninitialized element")
1972(assert_trap (invoke "test" (i32.const 151)) "uninitialized element")
1973(assert_trap (invoke "test" (i32.const 152)) "uninitialized element")
1974(assert_trap (invoke "test" (i32.const 153)) "uninitialized element")
1975(assert_trap (invoke "test" (i32.const 154)) "uninitialized element")
1976(assert_trap (invoke "test" (i32.const 155)) "uninitialized element")
1977(assert_trap (invoke "test" (i32.const 156)) "uninitialized element")
1978(assert_trap (invoke "test" (i32.const 157)) "uninitialized element")
1979(assert_trap (invoke "test" (i32.const 158)) "uninitialized element")
1980(assert_trap (invoke "test" (i32.const 159)) "uninitialized element")
1981
1982(module
1983 (type (func (result i32)))
1984 (table 64 64 funcref)
1985 (elem funcref
1986 (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
1987 (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
1988 (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
1989 (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
1990 (func $f0 (export "f0") (result i32) (i32.const 0))
1991 (func $f1 (export "f1") (result i32) (i32.const 1))
1992 (func $f2 (export "f2") (result i32) (i32.const 2))
1993 (func $f3 (export "f3") (result i32) (i32.const 3))
1994 (func $f4 (export "f4") (result i32) (i32.const 4))
1995 (func $f5 (export "f5") (result i32) (i32.const 5))
1996 (func $f6 (export "f6") (result i32) (i32.const 6))
1997 (func $f7 (export "f7") (result i32) (i32.const 7))
1998 (func $f8 (export "f8") (result i32) (i32.const 8))
1999 (func $f9 (export "f9") (result i32) (i32.const 9))
2000 (func $f10 (export "f10") (result i32) (i32.const 10))
2001 (func $f11 (export "f11") (result i32) (i32.const 11))
2002 (func $f12 (export "f12") (result i32) (i32.const 12))
2003 (func $f13 (export "f13") (result i32) (i32.const 13))
2004 (func $f14 (export "f14") (result i32) (i32.const 14))
2005 (func $f15 (export "f15") (result i32) (i32.const 15))
2006 (func (export "test") (param $n i32) (result i32)
2007 (call_indirect (type 0) (local.get $n)))
2008 (func (export "run") (param $offs i32) (param $len i32)
2009 (table.init 0 (local.get $offs) (i32.const 0) (local.get $len))))
2010(assert_trap (invoke "run" (i32.const 48) (i32.const 4294967280)) "out of bounds table access")
2011(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2012(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2013(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2014(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2015(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2016(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2017(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2018(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2019(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2020(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2021(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2022(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2023(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2024(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2025(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2026(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2027(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2028(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2029(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2030(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2031(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2032(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2033(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2034(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2035(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
2036(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
2037(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
2038(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
2039(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
2040(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
2041(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
2042(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
2043(assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
2044(assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
2045(assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
2046(assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
2047(assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
2048(assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
2049(assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
2050(assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
2051(assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
2052(assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
2053(assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
2054(assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
2055(assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
2056(assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
2057(assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
2058(assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
2059(assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
2060(assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
2061(assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
2062(assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
2063(assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
2064(assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
2065(assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
2066(assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
2067(assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
2068(assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
2069(assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
2070(assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
2071(assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
2072(assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
2073(assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
2074(assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
2075
2076(module
2077 (type (func (result i32)))
2078 (table 16 16 funcref)
2079 (elem funcref
2080 (ref.func $f0) (ref.func $f1) (ref.func $f2) (ref.func $f3)
2081 (ref.func $f4) (ref.func $f5) (ref.func $f6) (ref.func $f7)
2082 (ref.func $f8) (ref.func $f9) (ref.func $f10) (ref.func $f11)
2083 (ref.func $f12) (ref.func $f13) (ref.func $f14) (ref.func $f15))
2084 (func $f0 (export "f0") (result i32) (i32.const 0))
2085 (func $f1 (export "f1") (result i32) (i32.const 1))
2086 (func $f2 (export "f2") (result i32) (i32.const 2))
2087 (func $f3 (export "f3") (result i32) (i32.const 3))
2088 (func $f4 (export "f4") (result i32) (i32.const 4))
2089 (func $f5 (export "f5") (result i32) (i32.const 5))
2090 (func $f6 (export "f6") (result i32) (i32.const 6))
2091 (func $f7 (export "f7") (result i32) (i32.const 7))
2092 (func $f8 (export "f8") (result i32) (i32.const 8))
2093 (func $f9 (export "f9") (result i32) (i32.const 9))
2094 (func $f10 (export "f10") (result i32) (i32.const 10))
2095 (func $f11 (export "f11") (result i32) (i32.const 11))
2096 (func $f12 (export "f12") (result i32) (i32.const 12))
2097 (func $f13 (export "f13") (result i32) (i32.const 13))
2098 (func $f14 (export "f14") (result i32) (i32.const 14))
2099 (func $f15 (export "f15") (result i32) (i32.const 15))
2100 (func (export "test") (param $n i32) (result i32)
2101 (call_indirect (type 0) (local.get $n)))
2102 (func (export "run") (param $offs i32) (param $len i32)
2103 (table.init 0 (local.get $offs) (i32.const 8) (local.get $len))))
2104(assert_trap (invoke "run" (i32.const 0) (i32.const 4294967292)) "out of bounds table access")
2105(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2106(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2107(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2108(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2109(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2110(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2111(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2112(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2113(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2114(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2115(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2116(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2117(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2118(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2119(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2120(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2121
2122(module
2123 (table 1 funcref)
2124 ;; 65 elem segments. 64 is the smallest positive number that is encoded
2125 ;; differently as a signed LEB.
2126 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2127 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2128 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2129 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2130 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2131 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2132 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2133 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2134 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2135 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2136 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2137 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2138 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2139 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2140 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2141 (elem funcref) (elem funcref) (elem funcref) (elem funcref)
2142 (elem funcref)
2143 (func (table.init 64 (i32.const 0) (i32.const 0) (i32.const 0))))
View as plain text