...
1;;
2;; Generated by ../meta/generate_table_copy.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 (elem (table $t1) (i32.const 3) func 1 3 1 4)
31 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
32 (func (result i32) (i32.const 5)) ;; index 5
33 (func (result i32) (i32.const 6))
34 (func (result i32) (i32.const 7))
35 (func (result i32) (i32.const 8))
36 (func (result i32) (i32.const 9)) ;; index 9
37 (func (export "test")
38 (nop))
39 (func (export "check_t0") (param i32) (result i32)
40 (call_indirect $t0 (type 0) (local.get 0)))
41 (func (export "check_t1") (param i32) (result i32)
42 (call_indirect $t1 (type 0) (local.get 0)))
43)
44
45(invoke "test")
46(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
47(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
48(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
49(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
50(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
51(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
52(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
53(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
54(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
55(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
56(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
57(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
58(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
59(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
60(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
61(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
62(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
63(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
64(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
65(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
66(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
67(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
68(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
69(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
70(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
71(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
72(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
73(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
74(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
75(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
76(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
77(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
78(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
79(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
80(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
81(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
82(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
83(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
84(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
85(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
86(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
87(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
88(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
89(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
90(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
91(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
92(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
93(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
94(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
95(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
96(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
97(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
98(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
99(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
100(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
101(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
102(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
103(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
104(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
105(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
106
107(module
108 (type (func (result i32))) ;; type #0
109 (import "a" "ef0" (func (result i32))) ;; index 0
110 (import "a" "ef1" (func (result i32)))
111 (import "a" "ef2" (func (result i32)))
112 (import "a" "ef3" (func (result i32)))
113 (import "a" "ef4" (func (result i32))) ;; index 4
114 (table $t0 30 30 funcref)
115 (table $t1 30 30 funcref)
116 (elem (table $t0) (i32.const 2) func 3 1 4 1)
117 (elem funcref
118 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
119 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
120 (elem funcref
121 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
122 (elem (table $t1) (i32.const 3) func 1 3 1 4)
123 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
124 (func (result i32) (i32.const 5)) ;; index 5
125 (func (result i32) (i32.const 6))
126 (func (result i32) (i32.const 7))
127 (func (result i32) (i32.const 8))
128 (func (result i32) (i32.const 9)) ;; index 9
129 (func (export "test")
130 (table.copy $t0 $t0 (i32.const 13) (i32.const 2) (i32.const 3)))
131 (func (export "check_t0") (param i32) (result i32)
132 (call_indirect $t0 (type 0) (local.get 0)))
133 (func (export "check_t1") (param i32) (result i32)
134 (call_indirect $t1 (type 0) (local.get 0)))
135)
136
137(invoke "test")
138(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
139(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
140(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
141(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
142(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
143(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
144(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
145(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
146(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
147(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
148(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
149(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
150(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
151(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
152(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 1))
153(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 4))
154(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
155(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
156(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
157(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
158(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
159(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
160(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
161(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
162(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
163(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
164(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
165(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
166(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
167(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
168(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
169(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
170(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
171(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
172(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
173(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
174(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
175(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
176(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
177(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
178(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
179(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
180(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
181(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
182(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
183(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
184(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
185(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
186(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
187(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
188(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
189(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
190(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
191(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
192(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
193(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
194(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
195(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
196(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
197(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
198
199(module
200 (type (func (result i32))) ;; type #0
201 (import "a" "ef0" (func (result i32))) ;; index 0
202 (import "a" "ef1" (func (result i32)))
203 (import "a" "ef2" (func (result i32)))
204 (import "a" "ef3" (func (result i32)))
205 (import "a" "ef4" (func (result i32))) ;; index 4
206 (table $t0 30 30 funcref)
207 (table $t1 30 30 funcref)
208 (elem (table $t0) (i32.const 2) func 3 1 4 1)
209 (elem funcref
210 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
211 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
212 (elem funcref
213 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
214 (elem (table $t1) (i32.const 3) func 1 3 1 4)
215 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
216 (func (result i32) (i32.const 5)) ;; index 5
217 (func (result i32) (i32.const 6))
218 (func (result i32) (i32.const 7))
219 (func (result i32) (i32.const 8))
220 (func (result i32) (i32.const 9)) ;; index 9
221 (func (export "test")
222 (table.copy $t0 $t0 (i32.const 25) (i32.const 15) (i32.const 2)))
223 (func (export "check_t0") (param i32) (result i32)
224 (call_indirect $t0 (type 0) (local.get 0)))
225 (func (export "check_t1") (param i32) (result i32)
226 (call_indirect $t1 (type 0) (local.get 0)))
227)
228
229(invoke "test")
230(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
231(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
232(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
233(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
234(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
235(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
236(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
237(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
238(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
239(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
240(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
241(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
242(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
243(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
244(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
245(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
246(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
247(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
248(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
249(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
250(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
251(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
252(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
253(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
254(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
255(assert_return (invoke "check_t0" (i32.const 25)) (i32.const 3))
256(assert_return (invoke "check_t0" (i32.const 26)) (i32.const 6))
257(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
258(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
259(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
260(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
261(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
262(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
263(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
264(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
265(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
266(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
267(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
268(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
269(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
270(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
271(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
272(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
273(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
274(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
275(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
276(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
277(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
278(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
279(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
280(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
281(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
282(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
283(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
284(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
285(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
286(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
287(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
288(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
289(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
290
291(module
292 (type (func (result i32))) ;; type #0
293 (import "a" "ef0" (func (result i32))) ;; index 0
294 (import "a" "ef1" (func (result i32)))
295 (import "a" "ef2" (func (result i32)))
296 (import "a" "ef3" (func (result i32)))
297 (import "a" "ef4" (func (result i32))) ;; index 4
298 (table $t0 30 30 funcref)
299 (table $t1 30 30 funcref)
300 (elem (table $t0) (i32.const 2) func 3 1 4 1)
301 (elem funcref
302 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
303 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
304 (elem funcref
305 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
306 (elem (table $t1) (i32.const 3) func 1 3 1 4)
307 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
308 (func (result i32) (i32.const 5)) ;; index 5
309 (func (result i32) (i32.const 6))
310 (func (result i32) (i32.const 7))
311 (func (result i32) (i32.const 8))
312 (func (result i32) (i32.const 9)) ;; index 9
313 (func (export "test")
314 (table.copy $t0 $t0 (i32.const 13) (i32.const 25) (i32.const 3)))
315 (func (export "check_t0") (param i32) (result i32)
316 (call_indirect $t0 (type 0) (local.get 0)))
317 (func (export "check_t1") (param i32) (result i32)
318 (call_indirect $t1 (type 0) (local.get 0)))
319)
320
321(invoke "test")
322(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
323(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
324(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
325(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
326(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
327(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
328(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
329(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
330(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
331(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
332(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
333(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
334(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
335(assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
336(assert_trap (invoke "check_t0" (i32.const 14)) "uninitialized element")
337(assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
338(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
339(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
340(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
341(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
342(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
343(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
344(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
345(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
346(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
347(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
348(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
349(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
350(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
351(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
352(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
353(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
354(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
355(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
356(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
357(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
358(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
359(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
360(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
361(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
362(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
363(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
364(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
365(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
366(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
367(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
368(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
369(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
370(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
371(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
372(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
373(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
374(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
375(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
376(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
377(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
378(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
379(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
380(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
381(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
382
383(module
384 (type (func (result i32))) ;; type #0
385 (import "a" "ef0" (func (result i32))) ;; index 0
386 (import "a" "ef1" (func (result i32)))
387 (import "a" "ef2" (func (result i32)))
388 (import "a" "ef3" (func (result i32)))
389 (import "a" "ef4" (func (result i32))) ;; index 4
390 (table $t0 30 30 funcref)
391 (table $t1 30 30 funcref)
392 (elem (table $t0) (i32.const 2) func 3 1 4 1)
393 (elem funcref
394 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
395 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
396 (elem funcref
397 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
398 (elem (table $t1) (i32.const 3) func 1 3 1 4)
399 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
400 (func (result i32) (i32.const 5)) ;; index 5
401 (func (result i32) (i32.const 6))
402 (func (result i32) (i32.const 7))
403 (func (result i32) (i32.const 8))
404 (func (result i32) (i32.const 9)) ;; index 9
405 (func (export "test")
406 (table.copy $t0 $t0 (i32.const 20) (i32.const 22) (i32.const 4)))
407 (func (export "check_t0") (param i32) (result i32)
408 (call_indirect $t0 (type 0) (local.get 0)))
409 (func (export "check_t1") (param i32) (result i32)
410 (call_indirect $t1 (type 0) (local.get 0)))
411)
412
413(invoke "test")
414(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
415(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
416(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
417(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
418(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
419(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
420(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
421(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
422(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
423(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
424(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
425(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
426(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
427(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
428(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
429(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
430(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
431(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
432(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
433(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
434(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
435(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
436(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
437(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
438(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
439(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
440(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
441(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
442(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
443(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
444(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
445(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
446(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
447(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
448(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
449(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
450(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
451(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
452(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
453(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
454(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
455(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
456(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
457(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
458(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
459(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
460(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
461(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
462(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
463(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
464(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
465(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
466(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
467(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
468(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
469(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
470(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
471(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
472(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
473(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
474
475(module
476 (type (func (result i32))) ;; type #0
477 (import "a" "ef0" (func (result i32))) ;; index 0
478 (import "a" "ef1" (func (result i32)))
479 (import "a" "ef2" (func (result i32)))
480 (import "a" "ef3" (func (result i32)))
481 (import "a" "ef4" (func (result i32))) ;; index 4
482 (table $t0 30 30 funcref)
483 (table $t1 30 30 funcref)
484 (elem (table $t0) (i32.const 2) func 3 1 4 1)
485 (elem funcref
486 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
487 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
488 (elem funcref
489 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
490 (elem (table $t1) (i32.const 3) func 1 3 1 4)
491 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
492 (func (result i32) (i32.const 5)) ;; index 5
493 (func (result i32) (i32.const 6))
494 (func (result i32) (i32.const 7))
495 (func (result i32) (i32.const 8))
496 (func (result i32) (i32.const 9)) ;; index 9
497 (func (export "test")
498 (table.copy $t0 $t0 (i32.const 25) (i32.const 1) (i32.const 3)))
499 (func (export "check_t0") (param i32) (result i32)
500 (call_indirect $t0 (type 0) (local.get 0)))
501 (func (export "check_t1") (param i32) (result i32)
502 (call_indirect $t1 (type 0) (local.get 0)))
503)
504
505(invoke "test")
506(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
507(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
508(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
509(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
510(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
511(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
512(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
513(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
514(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
515(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
516(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
517(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
518(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
519(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
520(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
521(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
522(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
523(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
524(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
525(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
526(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
527(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
528(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
529(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
530(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
531(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
532(assert_return (invoke "check_t0" (i32.const 26)) (i32.const 3))
533(assert_return (invoke "check_t0" (i32.const 27)) (i32.const 1))
534(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
535(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
536(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
537(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
538(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
539(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
540(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
541(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
542(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
543(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
544(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
545(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
546(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
547(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
548(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
549(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
550(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
551(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
552(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
553(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
554(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
555(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
556(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
557(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
558(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
559(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
560(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
561(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
562(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
563(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
564(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
565(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
566
567(module
568 (type (func (result i32))) ;; type #0
569 (import "a" "ef0" (func (result i32))) ;; index 0
570 (import "a" "ef1" (func (result i32)))
571 (import "a" "ef2" (func (result i32)))
572 (import "a" "ef3" (func (result i32)))
573 (import "a" "ef4" (func (result i32))) ;; index 4
574 (table $t0 30 30 funcref)
575 (table $t1 30 30 funcref)
576 (elem (table $t0) (i32.const 2) func 3 1 4 1)
577 (elem funcref
578 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
579 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
580 (elem funcref
581 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
582 (elem (table $t1) (i32.const 3) func 1 3 1 4)
583 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
584 (func (result i32) (i32.const 5)) ;; index 5
585 (func (result i32) (i32.const 6))
586 (func (result i32) (i32.const 7))
587 (func (result i32) (i32.const 8))
588 (func (result i32) (i32.const 9)) ;; index 9
589 (func (export "test")
590 (table.copy $t0 $t0 (i32.const 10) (i32.const 12) (i32.const 7)))
591 (func (export "check_t0") (param i32) (result i32)
592 (call_indirect $t0 (type 0) (local.get 0)))
593 (func (export "check_t1") (param i32) (result i32)
594 (call_indirect $t1 (type 0) (local.get 0)))
595)
596
597(invoke "test")
598(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
599(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
600(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
601(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
602(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
603(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
604(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
605(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
606(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
607(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
608(assert_return (invoke "check_t0" (i32.const 10)) (i32.const 7))
609(assert_return (invoke "check_t0" (i32.const 11)) (i32.const 5))
610(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 2))
611(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
612(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 6))
613(assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
614(assert_trap (invoke "check_t0" (i32.const 16)) "uninitialized element")
615(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
616(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
617(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
618(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
619(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
620(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
621(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
622(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
623(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
624(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
625(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
626(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
627(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
628(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
629(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
630(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
631(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
632(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
633(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
634(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
635(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
636(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
637(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
638(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
639(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
640(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
641(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
642(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
643(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
644(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
645(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
646(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
647(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
648(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
649(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
650(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
651(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
652(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
653(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
654(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
655(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
656(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
657(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
658
659(module
660 (type (func (result i32))) ;; type #0
661 (import "a" "ef0" (func (result i32))) ;; index 0
662 (import "a" "ef1" (func (result i32)))
663 (import "a" "ef2" (func (result i32)))
664 (import "a" "ef3" (func (result i32)))
665 (import "a" "ef4" (func (result i32))) ;; index 4
666 (table $t0 30 30 funcref)
667 (table $t1 30 30 funcref)
668 (elem (table $t0) (i32.const 2) func 3 1 4 1)
669 (elem funcref
670 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
671 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
672 (elem funcref
673 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
674 (elem (table $t1) (i32.const 3) func 1 3 1 4)
675 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
676 (func (result i32) (i32.const 5)) ;; index 5
677 (func (result i32) (i32.const 6))
678 (func (result i32) (i32.const 7))
679 (func (result i32) (i32.const 8))
680 (func (result i32) (i32.const 9)) ;; index 9
681 (func (export "test")
682 (table.copy $t0 $t0 (i32.const 12) (i32.const 10) (i32.const 7)))
683 (func (export "check_t0") (param i32) (result i32)
684 (call_indirect $t0 (type 0) (local.get 0)))
685 (func (export "check_t1") (param i32) (result i32)
686 (call_indirect $t1 (type 0) (local.get 0)))
687)
688
689(invoke "test")
690(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
691(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
692(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
693(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
694(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
695(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
696(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
697(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
698(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
699(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
700(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
701(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
702(assert_trap (invoke "check_t0" (i32.const 12)) "uninitialized element")
703(assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
704(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 7))
705(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 5))
706(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 2))
707(assert_return (invoke "check_t0" (i32.const 17)) (i32.const 3))
708(assert_return (invoke "check_t0" (i32.const 18)) (i32.const 6))
709(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
710(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
711(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
712(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
713(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
714(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
715(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
716(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
717(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
718(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
719(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
720(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
721(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
722(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
723(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
724(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
725(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
726(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
727(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
728(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
729(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
730(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
731(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
732(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
733(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
734(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
735(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
736(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
737(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
738(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
739(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
740(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
741(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
742(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
743(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
744(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
745(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
746(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
747(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
748(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
749(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
750
751(module
752 (type (func (result i32))) ;; type #0
753 (import "a" "ef0" (func (result i32))) ;; index 0
754 (import "a" "ef1" (func (result i32)))
755 (import "a" "ef2" (func (result i32)))
756 (import "a" "ef3" (func (result i32)))
757 (import "a" "ef4" (func (result i32))) ;; index 4
758 (table $t0 30 30 funcref)
759 (table $t1 30 30 funcref)
760 (elem (table $t0) (i32.const 2) func 3 1 4 1)
761 (elem funcref
762 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
763 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
764 (elem funcref
765 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
766 (elem (table $t1) (i32.const 3) func 1 3 1 4)
767 (elem (table $t1) (i32.const 11) func 6 3 2 5 7)
768 (func (result i32) (i32.const 5)) ;; index 5
769 (func (result i32) (i32.const 6))
770 (func (result i32) (i32.const 7))
771 (func (result i32) (i32.const 8))
772 (func (result i32) (i32.const 9)) ;; index 9
773 (func (export "test")
774 (table.copy $t1 $t0 (i32.const 10) (i32.const 0) (i32.const 20)))
775 (func (export "check_t0") (param i32) (result i32)
776 (call_indirect $t0 (type 0) (local.get 0)))
777 (func (export "check_t1") (param i32) (result i32)
778 (call_indirect $t1 (type 0) (local.get 0)))
779)
780
781(invoke "test")
782(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
783(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
784(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
785(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
786(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
787(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
788(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
789(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
790(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
791(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
792(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
793(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
794(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
795(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
796(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
797(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
798(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
799(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
800(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
801(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
802(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
803(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
804(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
805(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
806(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
807(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
808(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
809(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
810(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
811(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
812(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
813(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
814(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
815(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
816(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
817(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
818(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
819(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
820(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
821(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
822(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
823(assert_trap (invoke "check_t1" (i32.const 11)) "uninitialized element")
824(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
825(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 1))
826(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 4))
827(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 1))
828(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
829(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
830(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
831(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
832(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
833(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
834(assert_return (invoke "check_t1" (i32.const 22)) (i32.const 7))
835(assert_return (invoke "check_t1" (i32.const 23)) (i32.const 5))
836(assert_return (invoke "check_t1" (i32.const 24)) (i32.const 2))
837(assert_return (invoke "check_t1" (i32.const 25)) (i32.const 3))
838(assert_return (invoke "check_t1" (i32.const 26)) (i32.const 6))
839(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
840(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
841(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
842
843(module
844 (type (func (result i32))) ;; type #0
845 (import "a" "ef0" (func (result i32))) ;; index 0
846 (import "a" "ef1" (func (result i32)))
847 (import "a" "ef2" (func (result i32)))
848 (import "a" "ef3" (func (result i32)))
849 (import "a" "ef4" (func (result i32))) ;; index 4
850 (table $t0 30 30 funcref)
851 (table $t1 30 30 funcref)
852 (elem (table $t1) (i32.const 2) func 3 1 4 1)
853 (elem funcref
854 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
855 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
856 (elem funcref
857 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
858 (elem (table $t0) (i32.const 3) func 1 3 1 4)
859 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
860 (func (result i32) (i32.const 5)) ;; index 5
861 (func (result i32) (i32.const 6))
862 (func (result i32) (i32.const 7))
863 (func (result i32) (i32.const 8))
864 (func (result i32) (i32.const 9)) ;; index 9
865 (func (export "test")
866 (nop))
867 (func (export "check_t0") (param i32) (result i32)
868 (call_indirect $t1 (type 0) (local.get 0)))
869 (func (export "check_t1") (param i32) (result i32)
870 (call_indirect $t0 (type 0) (local.get 0)))
871)
872
873(invoke "test")
874(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
875(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
876(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
877(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
878(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
879(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
880(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
881(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
882(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
883(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
884(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
885(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
886(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
887(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
888(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
889(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
890(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
891(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
892(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
893(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
894(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
895(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
896(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
897(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
898(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
899(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
900(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
901(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
902(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
903(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
904(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
905(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
906(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
907(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
908(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
909(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
910(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
911(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
912(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
913(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
914(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
915(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
916(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
917(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
918(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
919(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
920(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
921(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
922(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
923(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
924(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
925(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
926(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
927(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
928(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
929(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
930(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
931(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
932(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
933(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
934
935(module
936 (type (func (result i32))) ;; type #0
937 (import "a" "ef0" (func (result i32))) ;; index 0
938 (import "a" "ef1" (func (result i32)))
939 (import "a" "ef2" (func (result i32)))
940 (import "a" "ef3" (func (result i32)))
941 (import "a" "ef4" (func (result i32))) ;; index 4
942 (table $t0 30 30 funcref)
943 (table $t1 30 30 funcref)
944 (elem (table $t1) (i32.const 2) func 3 1 4 1)
945 (elem funcref
946 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
947 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
948 (elem funcref
949 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
950 (elem (table $t0) (i32.const 3) func 1 3 1 4)
951 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
952 (func (result i32) (i32.const 5)) ;; index 5
953 (func (result i32) (i32.const 6))
954 (func (result i32) (i32.const 7))
955 (func (result i32) (i32.const 8))
956 (func (result i32) (i32.const 9)) ;; index 9
957 (func (export "test")
958 (table.copy $t1 $t1 (i32.const 13) (i32.const 2) (i32.const 3)))
959 (func (export "check_t0") (param i32) (result i32)
960 (call_indirect $t1 (type 0) (local.get 0)))
961 (func (export "check_t1") (param i32) (result i32)
962 (call_indirect $t0 (type 0) (local.get 0)))
963)
964
965(invoke "test")
966(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
967(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
968(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
969(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
970(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
971(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
972(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
973(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
974(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
975(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
976(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
977(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
978(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
979(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
980(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 1))
981(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 4))
982(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
983(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
984(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
985(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
986(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
987(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
988(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
989(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
990(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
991(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
992(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
993(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
994(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
995(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
996(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
997(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
998(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
999(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1000(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1001(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1002(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1003(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1004(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1005(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1006(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1007(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
1008(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1009(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
1010(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
1011(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
1012(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1013(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1014(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1015(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1016(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1017(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1018(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
1019(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
1020(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
1021(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
1022(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
1023(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1024(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1025(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1026
1027(module
1028 (type (func (result i32))) ;; type #0
1029 (import "a" "ef0" (func (result i32))) ;; index 0
1030 (import "a" "ef1" (func (result i32)))
1031 (import "a" "ef2" (func (result i32)))
1032 (import "a" "ef3" (func (result i32)))
1033 (import "a" "ef4" (func (result i32))) ;; index 4
1034 (table $t0 30 30 funcref)
1035 (table $t1 30 30 funcref)
1036 (elem (table $t1) (i32.const 2) func 3 1 4 1)
1037 (elem funcref
1038 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1039 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
1040 (elem funcref
1041 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1042 (elem (table $t0) (i32.const 3) func 1 3 1 4)
1043 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
1044 (func (result i32) (i32.const 5)) ;; index 5
1045 (func (result i32) (i32.const 6))
1046 (func (result i32) (i32.const 7))
1047 (func (result i32) (i32.const 8))
1048 (func (result i32) (i32.const 9)) ;; index 9
1049 (func (export "test")
1050 (table.copy $t1 $t1 (i32.const 25) (i32.const 15) (i32.const 2)))
1051 (func (export "check_t0") (param i32) (result i32)
1052 (call_indirect $t1 (type 0) (local.get 0)))
1053 (func (export "check_t1") (param i32) (result i32)
1054 (call_indirect $t0 (type 0) (local.get 0)))
1055)
1056
1057(invoke "test")
1058(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
1059(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
1060(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
1061(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
1062(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
1063(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
1064(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
1065(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
1066(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
1067(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
1068(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
1069(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
1070(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
1071(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
1072(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
1073(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
1074(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
1075(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
1076(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
1077(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
1078(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
1079(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
1080(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
1081(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
1082(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
1083(assert_return (invoke "check_t0" (i32.const 25)) (i32.const 3))
1084(assert_return (invoke "check_t0" (i32.const 26)) (i32.const 6))
1085(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
1086(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
1087(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
1088(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
1089(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
1090(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
1091(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1092(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1093(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1094(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1095(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1096(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1097(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1098(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1099(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
1100(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1101(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
1102(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
1103(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
1104(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1105(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1106(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1107(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1108(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1109(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1110(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
1111(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
1112(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
1113(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
1114(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
1115(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1116(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1117(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1118
1119(module
1120 (type (func (result i32))) ;; type #0
1121 (import "a" "ef0" (func (result i32))) ;; index 0
1122 (import "a" "ef1" (func (result i32)))
1123 (import "a" "ef2" (func (result i32)))
1124 (import "a" "ef3" (func (result i32)))
1125 (import "a" "ef4" (func (result i32))) ;; index 4
1126 (table $t0 30 30 funcref)
1127 (table $t1 30 30 funcref)
1128 (elem (table $t1) (i32.const 2) func 3 1 4 1)
1129 (elem funcref
1130 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1131 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
1132 (elem funcref
1133 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1134 (elem (table $t0) (i32.const 3) func 1 3 1 4)
1135 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
1136 (func (result i32) (i32.const 5)) ;; index 5
1137 (func (result i32) (i32.const 6))
1138 (func (result i32) (i32.const 7))
1139 (func (result i32) (i32.const 8))
1140 (func (result i32) (i32.const 9)) ;; index 9
1141 (func (export "test")
1142 (table.copy $t1 $t1 (i32.const 13) (i32.const 25) (i32.const 3)))
1143 (func (export "check_t0") (param i32) (result i32)
1144 (call_indirect $t1 (type 0) (local.get 0)))
1145 (func (export "check_t1") (param i32) (result i32)
1146 (call_indirect $t0 (type 0) (local.get 0)))
1147)
1148
1149(invoke "test")
1150(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
1151(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
1152(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
1153(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
1154(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
1155(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
1156(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
1157(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
1158(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
1159(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
1160(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
1161(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
1162(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
1163(assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
1164(assert_trap (invoke "check_t0" (i32.const 14)) "uninitialized element")
1165(assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
1166(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
1167(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
1168(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
1169(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
1170(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
1171(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
1172(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
1173(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
1174(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
1175(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
1176(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
1177(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
1178(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
1179(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
1180(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
1181(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
1182(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
1183(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1184(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1185(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1186(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1187(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1188(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1189(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1190(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1191(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
1192(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1193(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
1194(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
1195(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
1196(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1197(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1198(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1199(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1200(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1201(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1202(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
1203(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
1204(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
1205(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
1206(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
1207(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1208(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1209(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1210
1211(module
1212 (type (func (result i32))) ;; type #0
1213 (import "a" "ef0" (func (result i32))) ;; index 0
1214 (import "a" "ef1" (func (result i32)))
1215 (import "a" "ef2" (func (result i32)))
1216 (import "a" "ef3" (func (result i32)))
1217 (import "a" "ef4" (func (result i32))) ;; index 4
1218 (table $t0 30 30 funcref)
1219 (table $t1 30 30 funcref)
1220 (elem (table $t1) (i32.const 2) func 3 1 4 1)
1221 (elem funcref
1222 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1223 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
1224 (elem funcref
1225 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1226 (elem (table $t0) (i32.const 3) func 1 3 1 4)
1227 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
1228 (func (result i32) (i32.const 5)) ;; index 5
1229 (func (result i32) (i32.const 6))
1230 (func (result i32) (i32.const 7))
1231 (func (result i32) (i32.const 8))
1232 (func (result i32) (i32.const 9)) ;; index 9
1233 (func (export "test")
1234 (table.copy $t1 $t1 (i32.const 20) (i32.const 22) (i32.const 4)))
1235 (func (export "check_t0") (param i32) (result i32)
1236 (call_indirect $t1 (type 0) (local.get 0)))
1237 (func (export "check_t1") (param i32) (result i32)
1238 (call_indirect $t0 (type 0) (local.get 0)))
1239)
1240
1241(invoke "test")
1242(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
1243(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
1244(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
1245(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
1246(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
1247(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
1248(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
1249(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
1250(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
1251(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
1252(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
1253(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
1254(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
1255(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
1256(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
1257(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
1258(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
1259(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
1260(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
1261(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
1262(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
1263(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
1264(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
1265(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
1266(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
1267(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
1268(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
1269(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
1270(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
1271(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
1272(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
1273(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
1274(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
1275(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1276(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1277(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1278(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1279(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1280(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1281(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1282(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1283(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
1284(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1285(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
1286(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
1287(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
1288(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1289(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1290(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1291(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1292(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1293(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1294(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
1295(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
1296(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
1297(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
1298(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
1299(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1300(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1301(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1302
1303(module
1304 (type (func (result i32))) ;; type #0
1305 (import "a" "ef0" (func (result i32))) ;; index 0
1306 (import "a" "ef1" (func (result i32)))
1307 (import "a" "ef2" (func (result i32)))
1308 (import "a" "ef3" (func (result i32)))
1309 (import "a" "ef4" (func (result i32))) ;; index 4
1310 (table $t0 30 30 funcref)
1311 (table $t1 30 30 funcref)
1312 (elem (table $t1) (i32.const 2) func 3 1 4 1)
1313 (elem funcref
1314 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1315 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
1316 (elem funcref
1317 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1318 (elem (table $t0) (i32.const 3) func 1 3 1 4)
1319 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
1320 (func (result i32) (i32.const 5)) ;; index 5
1321 (func (result i32) (i32.const 6))
1322 (func (result i32) (i32.const 7))
1323 (func (result i32) (i32.const 8))
1324 (func (result i32) (i32.const 9)) ;; index 9
1325 (func (export "test")
1326 (table.copy $t1 $t1 (i32.const 25) (i32.const 1) (i32.const 3)))
1327 (func (export "check_t0") (param i32) (result i32)
1328 (call_indirect $t1 (type 0) (local.get 0)))
1329 (func (export "check_t1") (param i32) (result i32)
1330 (call_indirect $t0 (type 0) (local.get 0)))
1331)
1332
1333(invoke "test")
1334(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
1335(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
1336(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
1337(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
1338(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
1339(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
1340(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
1341(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
1342(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
1343(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
1344(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
1345(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
1346(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
1347(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
1348(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
1349(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
1350(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
1351(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
1352(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
1353(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
1354(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
1355(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
1356(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
1357(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
1358(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
1359(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
1360(assert_return (invoke "check_t0" (i32.const 26)) (i32.const 3))
1361(assert_return (invoke "check_t0" (i32.const 27)) (i32.const 1))
1362(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
1363(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
1364(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
1365(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
1366(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
1367(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1368(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1369(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1370(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1371(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1372(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1373(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1374(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1375(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
1376(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1377(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
1378(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
1379(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
1380(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1381(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1382(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1383(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1384(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1385(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1386(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
1387(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
1388(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
1389(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
1390(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
1391(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1392(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1393(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1394
1395(module
1396 (type (func (result i32))) ;; type #0
1397 (import "a" "ef0" (func (result i32))) ;; index 0
1398 (import "a" "ef1" (func (result i32)))
1399 (import "a" "ef2" (func (result i32)))
1400 (import "a" "ef3" (func (result i32)))
1401 (import "a" "ef4" (func (result i32))) ;; index 4
1402 (table $t0 30 30 funcref)
1403 (table $t1 30 30 funcref)
1404 (elem (table $t1) (i32.const 2) func 3 1 4 1)
1405 (elem funcref
1406 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1407 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
1408 (elem funcref
1409 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1410 (elem (table $t0) (i32.const 3) func 1 3 1 4)
1411 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
1412 (func (result i32) (i32.const 5)) ;; index 5
1413 (func (result i32) (i32.const 6))
1414 (func (result i32) (i32.const 7))
1415 (func (result i32) (i32.const 8))
1416 (func (result i32) (i32.const 9)) ;; index 9
1417 (func (export "test")
1418 (table.copy $t1 $t1 (i32.const 10) (i32.const 12) (i32.const 7)))
1419 (func (export "check_t0") (param i32) (result i32)
1420 (call_indirect $t1 (type 0) (local.get 0)))
1421 (func (export "check_t1") (param i32) (result i32)
1422 (call_indirect $t0 (type 0) (local.get 0)))
1423)
1424
1425(invoke "test")
1426(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
1427(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
1428(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
1429(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
1430(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
1431(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
1432(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
1433(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
1434(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
1435(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
1436(assert_return (invoke "check_t0" (i32.const 10)) (i32.const 7))
1437(assert_return (invoke "check_t0" (i32.const 11)) (i32.const 5))
1438(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 2))
1439(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 3))
1440(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 6))
1441(assert_trap (invoke "check_t0" (i32.const 15)) "uninitialized element")
1442(assert_trap (invoke "check_t0" (i32.const 16)) "uninitialized element")
1443(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
1444(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
1445(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
1446(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
1447(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
1448(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
1449(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
1450(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
1451(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
1452(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
1453(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
1454(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
1455(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
1456(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
1457(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
1458(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
1459(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1460(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1461(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1462(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1463(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1464(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1465(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1466(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1467(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
1468(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1469(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
1470(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
1471(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
1472(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1473(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1474(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1475(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1476(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1477(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1478(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
1479(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
1480(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
1481(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
1482(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
1483(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1484(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1485(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1486
1487(module
1488 (type (func (result i32))) ;; type #0
1489 (import "a" "ef0" (func (result i32))) ;; index 0
1490 (import "a" "ef1" (func (result i32)))
1491 (import "a" "ef2" (func (result i32)))
1492 (import "a" "ef3" (func (result i32)))
1493 (import "a" "ef4" (func (result i32))) ;; index 4
1494 (table $t0 30 30 funcref)
1495 (table $t1 30 30 funcref)
1496 (elem (table $t1) (i32.const 2) func 3 1 4 1)
1497 (elem funcref
1498 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1499 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
1500 (elem funcref
1501 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1502 (elem (table $t0) (i32.const 3) func 1 3 1 4)
1503 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
1504 (func (result i32) (i32.const 5)) ;; index 5
1505 (func (result i32) (i32.const 6))
1506 (func (result i32) (i32.const 7))
1507 (func (result i32) (i32.const 8))
1508 (func (result i32) (i32.const 9)) ;; index 9
1509 (func (export "test")
1510 (table.copy $t1 $t1 (i32.const 12) (i32.const 10) (i32.const 7)))
1511 (func (export "check_t0") (param i32) (result i32)
1512 (call_indirect $t1 (type 0) (local.get 0)))
1513 (func (export "check_t1") (param i32) (result i32)
1514 (call_indirect $t0 (type 0) (local.get 0)))
1515)
1516
1517(invoke "test")
1518(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
1519(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
1520(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
1521(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
1522(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
1523(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
1524(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
1525(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
1526(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
1527(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
1528(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
1529(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
1530(assert_trap (invoke "check_t0" (i32.const 12)) "uninitialized element")
1531(assert_trap (invoke "check_t0" (i32.const 13)) "uninitialized element")
1532(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 7))
1533(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 5))
1534(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 2))
1535(assert_return (invoke "check_t0" (i32.const 17)) (i32.const 3))
1536(assert_return (invoke "check_t0" (i32.const 18)) (i32.const 6))
1537(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
1538(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
1539(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
1540(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
1541(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
1542(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
1543(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
1544(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
1545(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
1546(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
1547(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
1548(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
1549(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
1550(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
1551(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1552(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1553(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1554(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1555(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1556(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1557(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1558(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1559(assert_return (invoke "check_t1" (i32.const 11)) (i32.const 6))
1560(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1561(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 2))
1562(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 5))
1563(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 7))
1564(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1565(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1566(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1567(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1568(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1569(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1570(assert_trap (invoke "check_t1" (i32.const 22)) "uninitialized element")
1571(assert_trap (invoke "check_t1" (i32.const 23)) "uninitialized element")
1572(assert_trap (invoke "check_t1" (i32.const 24)) "uninitialized element")
1573(assert_trap (invoke "check_t1" (i32.const 25)) "uninitialized element")
1574(assert_trap (invoke "check_t1" (i32.const 26)) "uninitialized element")
1575(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1576(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1577(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1578
1579(module
1580 (type (func (result i32))) ;; type #0
1581 (import "a" "ef0" (func (result i32))) ;; index 0
1582 (import "a" "ef1" (func (result i32)))
1583 (import "a" "ef2" (func (result i32)))
1584 (import "a" "ef3" (func (result i32)))
1585 (import "a" "ef4" (func (result i32))) ;; index 4
1586 (table $t0 30 30 funcref)
1587 (table $t1 30 30 funcref)
1588 (elem (table $t1) (i32.const 2) func 3 1 4 1)
1589 (elem funcref
1590 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1591 (elem (table $t1) (i32.const 12) func 7 5 2 3 6)
1592 (elem funcref
1593 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1594 (elem (table $t0) (i32.const 3) func 1 3 1 4)
1595 (elem (table $t0) (i32.const 11) func 6 3 2 5 7)
1596 (func (result i32) (i32.const 5)) ;; index 5
1597 (func (result i32) (i32.const 6))
1598 (func (result i32) (i32.const 7))
1599 (func (result i32) (i32.const 8))
1600 (func (result i32) (i32.const 9)) ;; index 9
1601 (func (export "test")
1602 (table.copy $t0 $t1 (i32.const 10) (i32.const 0) (i32.const 20)))
1603 (func (export "check_t0") (param i32) (result i32)
1604 (call_indirect $t1 (type 0) (local.get 0)))
1605 (func (export "check_t1") (param i32) (result i32)
1606 (call_indirect $t0 (type 0) (local.get 0)))
1607)
1608
1609(invoke "test")
1610(assert_trap (invoke "check_t0" (i32.const 0)) "uninitialized element")
1611(assert_trap (invoke "check_t0" (i32.const 1)) "uninitialized element")
1612(assert_return (invoke "check_t0" (i32.const 2)) (i32.const 3))
1613(assert_return (invoke "check_t0" (i32.const 3)) (i32.const 1))
1614(assert_return (invoke "check_t0" (i32.const 4)) (i32.const 4))
1615(assert_return (invoke "check_t0" (i32.const 5)) (i32.const 1))
1616(assert_trap (invoke "check_t0" (i32.const 6)) "uninitialized element")
1617(assert_trap (invoke "check_t0" (i32.const 7)) "uninitialized element")
1618(assert_trap (invoke "check_t0" (i32.const 8)) "uninitialized element")
1619(assert_trap (invoke "check_t0" (i32.const 9)) "uninitialized element")
1620(assert_trap (invoke "check_t0" (i32.const 10)) "uninitialized element")
1621(assert_trap (invoke "check_t0" (i32.const 11)) "uninitialized element")
1622(assert_return (invoke "check_t0" (i32.const 12)) (i32.const 7))
1623(assert_return (invoke "check_t0" (i32.const 13)) (i32.const 5))
1624(assert_return (invoke "check_t0" (i32.const 14)) (i32.const 2))
1625(assert_return (invoke "check_t0" (i32.const 15)) (i32.const 3))
1626(assert_return (invoke "check_t0" (i32.const 16)) (i32.const 6))
1627(assert_trap (invoke "check_t0" (i32.const 17)) "uninitialized element")
1628(assert_trap (invoke "check_t0" (i32.const 18)) "uninitialized element")
1629(assert_trap (invoke "check_t0" (i32.const 19)) "uninitialized element")
1630(assert_trap (invoke "check_t0" (i32.const 20)) "uninitialized element")
1631(assert_trap (invoke "check_t0" (i32.const 21)) "uninitialized element")
1632(assert_trap (invoke "check_t0" (i32.const 22)) "uninitialized element")
1633(assert_trap (invoke "check_t0" (i32.const 23)) "uninitialized element")
1634(assert_trap (invoke "check_t0" (i32.const 24)) "uninitialized element")
1635(assert_trap (invoke "check_t0" (i32.const 25)) "uninitialized element")
1636(assert_trap (invoke "check_t0" (i32.const 26)) "uninitialized element")
1637(assert_trap (invoke "check_t0" (i32.const 27)) "uninitialized element")
1638(assert_trap (invoke "check_t0" (i32.const 28)) "uninitialized element")
1639(assert_trap (invoke "check_t0" (i32.const 29)) "uninitialized element")
1640(assert_trap (invoke "check_t1" (i32.const 0)) "uninitialized element")
1641(assert_trap (invoke "check_t1" (i32.const 1)) "uninitialized element")
1642(assert_trap (invoke "check_t1" (i32.const 2)) "uninitialized element")
1643(assert_return (invoke "check_t1" (i32.const 3)) (i32.const 1))
1644(assert_return (invoke "check_t1" (i32.const 4)) (i32.const 3))
1645(assert_return (invoke "check_t1" (i32.const 5)) (i32.const 1))
1646(assert_return (invoke "check_t1" (i32.const 6)) (i32.const 4))
1647(assert_trap (invoke "check_t1" (i32.const 7)) "uninitialized element")
1648(assert_trap (invoke "check_t1" (i32.const 8)) "uninitialized element")
1649(assert_trap (invoke "check_t1" (i32.const 9)) "uninitialized element")
1650(assert_trap (invoke "check_t1" (i32.const 10)) "uninitialized element")
1651(assert_trap (invoke "check_t1" (i32.const 11)) "uninitialized element")
1652(assert_return (invoke "check_t1" (i32.const 12)) (i32.const 3))
1653(assert_return (invoke "check_t1" (i32.const 13)) (i32.const 1))
1654(assert_return (invoke "check_t1" (i32.const 14)) (i32.const 4))
1655(assert_return (invoke "check_t1" (i32.const 15)) (i32.const 1))
1656(assert_trap (invoke "check_t1" (i32.const 16)) "uninitialized element")
1657(assert_trap (invoke "check_t1" (i32.const 17)) "uninitialized element")
1658(assert_trap (invoke "check_t1" (i32.const 18)) "uninitialized element")
1659(assert_trap (invoke "check_t1" (i32.const 19)) "uninitialized element")
1660(assert_trap (invoke "check_t1" (i32.const 20)) "uninitialized element")
1661(assert_trap (invoke "check_t1" (i32.const 21)) "uninitialized element")
1662(assert_return (invoke "check_t1" (i32.const 22)) (i32.const 7))
1663(assert_return (invoke "check_t1" (i32.const 23)) (i32.const 5))
1664(assert_return (invoke "check_t1" (i32.const 24)) (i32.const 2))
1665(assert_return (invoke "check_t1" (i32.const 25)) (i32.const 3))
1666(assert_return (invoke "check_t1" (i32.const 26)) (i32.const 6))
1667(assert_trap (invoke "check_t1" (i32.const 27)) "uninitialized element")
1668(assert_trap (invoke "check_t1" (i32.const 28)) "uninitialized element")
1669(assert_trap (invoke "check_t1" (i32.const 29)) "uninitialized element")
1670
1671(module
1672 (table $t0 30 30 funcref)
1673 (table $t1 30 30 funcref)
1674 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1675 (elem funcref
1676 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1677 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1678 (elem funcref
1679 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1680 (func (result i32) (i32.const 0))
1681 (func (result i32) (i32.const 1))
1682 (func (result i32) (i32.const 2))
1683 (func (result i32) (i32.const 3))
1684 (func (result i32) (i32.const 4))
1685 (func (result i32) (i32.const 5))
1686 (func (result i32) (i32.const 6))
1687 (func (result i32) (i32.const 7))
1688 (func (result i32) (i32.const 8))
1689 (func (result i32) (i32.const 9))
1690 (func (export "test")
1691 (table.copy $t0 $t0 (i32.const 28) (i32.const 1) (i32.const 3))
1692 ))
1693
1694(assert_trap (invoke "test") "out of bounds table access")
1695
1696(module
1697 (table $t0 30 30 funcref)
1698 (table $t1 30 30 funcref)
1699 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1700 (elem funcref
1701 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1702 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1703 (elem funcref
1704 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1705 (func (result i32) (i32.const 0))
1706 (func (result i32) (i32.const 1))
1707 (func (result i32) (i32.const 2))
1708 (func (result i32) (i32.const 3))
1709 (func (result i32) (i32.const 4))
1710 (func (result i32) (i32.const 5))
1711 (func (result i32) (i32.const 6))
1712 (func (result i32) (i32.const 7))
1713 (func (result i32) (i32.const 8))
1714 (func (result i32) (i32.const 9))
1715 (func (export "test")
1716 (table.copy $t0 $t0 (i32.const 0xFFFFFFFE) (i32.const 1) (i32.const 2))
1717 ))
1718
1719(assert_trap (invoke "test") "out of bounds table access")
1720
1721(module
1722 (table $t0 30 30 funcref)
1723 (table $t1 30 30 funcref)
1724 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1725 (elem funcref
1726 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1727 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1728 (elem funcref
1729 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1730 (func (result i32) (i32.const 0))
1731 (func (result i32) (i32.const 1))
1732 (func (result i32) (i32.const 2))
1733 (func (result i32) (i32.const 3))
1734 (func (result i32) (i32.const 4))
1735 (func (result i32) (i32.const 5))
1736 (func (result i32) (i32.const 6))
1737 (func (result i32) (i32.const 7))
1738 (func (result i32) (i32.const 8))
1739 (func (result i32) (i32.const 9))
1740 (func (export "test")
1741 (table.copy $t0 $t0 (i32.const 15) (i32.const 25) (i32.const 6))
1742 ))
1743
1744(assert_trap (invoke "test") "out of bounds table access")
1745
1746(module
1747 (table $t0 30 30 funcref)
1748 (table $t1 30 30 funcref)
1749 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1750 (elem funcref
1751 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1752 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1753 (elem funcref
1754 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1755 (func (result i32) (i32.const 0))
1756 (func (result i32) (i32.const 1))
1757 (func (result i32) (i32.const 2))
1758 (func (result i32) (i32.const 3))
1759 (func (result i32) (i32.const 4))
1760 (func (result i32) (i32.const 5))
1761 (func (result i32) (i32.const 6))
1762 (func (result i32) (i32.const 7))
1763 (func (result i32) (i32.const 8))
1764 (func (result i32) (i32.const 9))
1765 (func (export "test")
1766 (table.copy $t0 $t0 (i32.const 15) (i32.const 0xFFFFFFFE) (i32.const 2))
1767 ))
1768
1769(assert_trap (invoke "test") "out of bounds table access")
1770
1771(module
1772 (table $t0 30 30 funcref)
1773 (table $t1 30 30 funcref)
1774 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1775 (elem funcref
1776 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1777 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1778 (elem funcref
1779 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1780 (func (result i32) (i32.const 0))
1781 (func (result i32) (i32.const 1))
1782 (func (result i32) (i32.const 2))
1783 (func (result i32) (i32.const 3))
1784 (func (result i32) (i32.const 4))
1785 (func (result i32) (i32.const 5))
1786 (func (result i32) (i32.const 6))
1787 (func (result i32) (i32.const 7))
1788 (func (result i32) (i32.const 8))
1789 (func (result i32) (i32.const 9))
1790 (func (export "test")
1791 (table.copy $t0 $t0 (i32.const 15) (i32.const 25) (i32.const 0))
1792 ))
1793
1794(invoke "test")
1795
1796(module
1797 (table $t0 30 30 funcref)
1798 (table $t1 30 30 funcref)
1799 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1800 (elem funcref
1801 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1802 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1803 (elem funcref
1804 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1805 (func (result i32) (i32.const 0))
1806 (func (result i32) (i32.const 1))
1807 (func (result i32) (i32.const 2))
1808 (func (result i32) (i32.const 3))
1809 (func (result i32) (i32.const 4))
1810 (func (result i32) (i32.const 5))
1811 (func (result i32) (i32.const 6))
1812 (func (result i32) (i32.const 7))
1813 (func (result i32) (i32.const 8))
1814 (func (result i32) (i32.const 9))
1815 (func (export "test")
1816 (table.copy $t0 $t0 (i32.const 30) (i32.const 15) (i32.const 0))
1817 ))
1818
1819(invoke "test")
1820
1821(module
1822 (table $t0 30 30 funcref)
1823 (table $t1 30 30 funcref)
1824 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1825 (elem funcref
1826 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1827 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1828 (elem funcref
1829 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1830 (func (result i32) (i32.const 0))
1831 (func (result i32) (i32.const 1))
1832 (func (result i32) (i32.const 2))
1833 (func (result i32) (i32.const 3))
1834 (func (result i32) (i32.const 4))
1835 (func (result i32) (i32.const 5))
1836 (func (result i32) (i32.const 6))
1837 (func (result i32) (i32.const 7))
1838 (func (result i32) (i32.const 8))
1839 (func (result i32) (i32.const 9))
1840 (func (export "test")
1841 (table.copy $t0 $t0 (i32.const 31) (i32.const 15) (i32.const 0))
1842 ))
1843
1844(assert_trap (invoke "test") "out of bounds table access")
1845
1846(module
1847 (table $t0 30 30 funcref)
1848 (table $t1 30 30 funcref)
1849 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1850 (elem funcref
1851 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1852 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1853 (elem funcref
1854 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1855 (func (result i32) (i32.const 0))
1856 (func (result i32) (i32.const 1))
1857 (func (result i32) (i32.const 2))
1858 (func (result i32) (i32.const 3))
1859 (func (result i32) (i32.const 4))
1860 (func (result i32) (i32.const 5))
1861 (func (result i32) (i32.const 6))
1862 (func (result i32) (i32.const 7))
1863 (func (result i32) (i32.const 8))
1864 (func (result i32) (i32.const 9))
1865 (func (export "test")
1866 (table.copy $t0 $t0 (i32.const 15) (i32.const 30) (i32.const 0))
1867 ))
1868
1869(invoke "test")
1870
1871(module
1872 (table $t0 30 30 funcref)
1873 (table $t1 30 30 funcref)
1874 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1875 (elem funcref
1876 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1877 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1878 (elem funcref
1879 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1880 (func (result i32) (i32.const 0))
1881 (func (result i32) (i32.const 1))
1882 (func (result i32) (i32.const 2))
1883 (func (result i32) (i32.const 3))
1884 (func (result i32) (i32.const 4))
1885 (func (result i32) (i32.const 5))
1886 (func (result i32) (i32.const 6))
1887 (func (result i32) (i32.const 7))
1888 (func (result i32) (i32.const 8))
1889 (func (result i32) (i32.const 9))
1890 (func (export "test")
1891 (table.copy $t0 $t0 (i32.const 15) (i32.const 31) (i32.const 0))
1892 ))
1893
1894(assert_trap (invoke "test") "out of bounds table access")
1895
1896(module
1897 (table $t0 30 30 funcref)
1898 (table $t1 30 30 funcref)
1899 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1900 (elem funcref
1901 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1902 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1903 (elem funcref
1904 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1905 (func (result i32) (i32.const 0))
1906 (func (result i32) (i32.const 1))
1907 (func (result i32) (i32.const 2))
1908 (func (result i32) (i32.const 3))
1909 (func (result i32) (i32.const 4))
1910 (func (result i32) (i32.const 5))
1911 (func (result i32) (i32.const 6))
1912 (func (result i32) (i32.const 7))
1913 (func (result i32) (i32.const 8))
1914 (func (result i32) (i32.const 9))
1915 (func (export "test")
1916 (table.copy $t0 $t0 (i32.const 30) (i32.const 30) (i32.const 0))
1917 ))
1918
1919(invoke "test")
1920
1921(module
1922 (table $t0 30 30 funcref)
1923 (table $t1 30 30 funcref)
1924 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1925 (elem funcref
1926 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1927 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1928 (elem funcref
1929 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1930 (func (result i32) (i32.const 0))
1931 (func (result i32) (i32.const 1))
1932 (func (result i32) (i32.const 2))
1933 (func (result i32) (i32.const 3))
1934 (func (result i32) (i32.const 4))
1935 (func (result i32) (i32.const 5))
1936 (func (result i32) (i32.const 6))
1937 (func (result i32) (i32.const 7))
1938 (func (result i32) (i32.const 8))
1939 (func (result i32) (i32.const 9))
1940 (func (export "test")
1941 (table.copy $t0 $t0 (i32.const 31) (i32.const 31) (i32.const 0))
1942 ))
1943
1944(assert_trap (invoke "test") "out of bounds table access")
1945
1946(module
1947 (table $t0 30 30 funcref)
1948 (table $t1 30 30 funcref)
1949 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1950 (elem funcref
1951 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1952 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1953 (elem funcref
1954 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1955 (func (result i32) (i32.const 0))
1956 (func (result i32) (i32.const 1))
1957 (func (result i32) (i32.const 2))
1958 (func (result i32) (i32.const 3))
1959 (func (result i32) (i32.const 4))
1960 (func (result i32) (i32.const 5))
1961 (func (result i32) (i32.const 6))
1962 (func (result i32) (i32.const 7))
1963 (func (result i32) (i32.const 8))
1964 (func (result i32) (i32.const 9))
1965 (func (export "test")
1966 (table.copy $t1 $t0 (i32.const 28) (i32.const 1) (i32.const 3))
1967 ))
1968
1969(assert_trap (invoke "test") "out of bounds table access")
1970
1971(module
1972 (table $t0 30 30 funcref)
1973 (table $t1 30 30 funcref)
1974 (elem (table $t0) (i32.const 2) func 3 1 4 1)
1975 (elem funcref
1976 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
1977 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
1978 (elem funcref
1979 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
1980 (func (result i32) (i32.const 0))
1981 (func (result i32) (i32.const 1))
1982 (func (result i32) (i32.const 2))
1983 (func (result i32) (i32.const 3))
1984 (func (result i32) (i32.const 4))
1985 (func (result i32) (i32.const 5))
1986 (func (result i32) (i32.const 6))
1987 (func (result i32) (i32.const 7))
1988 (func (result i32) (i32.const 8))
1989 (func (result i32) (i32.const 9))
1990 (func (export "test")
1991 (table.copy $t1 $t0 (i32.const 0xFFFFFFFE) (i32.const 1) (i32.const 2))
1992 ))
1993
1994(assert_trap (invoke "test") "out of bounds table access")
1995
1996(module
1997 (table $t0 30 30 funcref)
1998 (table $t1 30 30 funcref)
1999 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2000 (elem funcref
2001 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2002 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2003 (elem funcref
2004 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2005 (func (result i32) (i32.const 0))
2006 (func (result i32) (i32.const 1))
2007 (func (result i32) (i32.const 2))
2008 (func (result i32) (i32.const 3))
2009 (func (result i32) (i32.const 4))
2010 (func (result i32) (i32.const 5))
2011 (func (result i32) (i32.const 6))
2012 (func (result i32) (i32.const 7))
2013 (func (result i32) (i32.const 8))
2014 (func (result i32) (i32.const 9))
2015 (func (export "test")
2016 (table.copy $t1 $t0 (i32.const 15) (i32.const 25) (i32.const 6))
2017 ))
2018
2019(assert_trap (invoke "test") "out of bounds table access")
2020
2021(module
2022 (table $t0 30 30 funcref)
2023 (table $t1 30 30 funcref)
2024 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2025 (elem funcref
2026 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2027 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2028 (elem funcref
2029 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2030 (func (result i32) (i32.const 0))
2031 (func (result i32) (i32.const 1))
2032 (func (result i32) (i32.const 2))
2033 (func (result i32) (i32.const 3))
2034 (func (result i32) (i32.const 4))
2035 (func (result i32) (i32.const 5))
2036 (func (result i32) (i32.const 6))
2037 (func (result i32) (i32.const 7))
2038 (func (result i32) (i32.const 8))
2039 (func (result i32) (i32.const 9))
2040 (func (export "test")
2041 (table.copy $t1 $t0 (i32.const 15) (i32.const 0xFFFFFFFE) (i32.const 2))
2042 ))
2043
2044(assert_trap (invoke "test") "out of bounds table access")
2045
2046(module
2047 (table $t0 30 30 funcref)
2048 (table $t1 30 30 funcref)
2049 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2050 (elem funcref
2051 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2052 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2053 (elem funcref
2054 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2055 (func (result i32) (i32.const 0))
2056 (func (result i32) (i32.const 1))
2057 (func (result i32) (i32.const 2))
2058 (func (result i32) (i32.const 3))
2059 (func (result i32) (i32.const 4))
2060 (func (result i32) (i32.const 5))
2061 (func (result i32) (i32.const 6))
2062 (func (result i32) (i32.const 7))
2063 (func (result i32) (i32.const 8))
2064 (func (result i32) (i32.const 9))
2065 (func (export "test")
2066 (table.copy $t1 $t0 (i32.const 15) (i32.const 25) (i32.const 0))
2067 ))
2068
2069(invoke "test")
2070
2071(module
2072 (table $t0 30 30 funcref)
2073 (table $t1 30 30 funcref)
2074 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2075 (elem funcref
2076 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2077 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2078 (elem funcref
2079 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2080 (func (result i32) (i32.const 0))
2081 (func (result i32) (i32.const 1))
2082 (func (result i32) (i32.const 2))
2083 (func (result i32) (i32.const 3))
2084 (func (result i32) (i32.const 4))
2085 (func (result i32) (i32.const 5))
2086 (func (result i32) (i32.const 6))
2087 (func (result i32) (i32.const 7))
2088 (func (result i32) (i32.const 8))
2089 (func (result i32) (i32.const 9))
2090 (func (export "test")
2091 (table.copy $t1 $t0 (i32.const 30) (i32.const 15) (i32.const 0))
2092 ))
2093
2094(invoke "test")
2095
2096(module
2097 (table $t0 30 30 funcref)
2098 (table $t1 30 30 funcref)
2099 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2100 (elem funcref
2101 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2102 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2103 (elem funcref
2104 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2105 (func (result i32) (i32.const 0))
2106 (func (result i32) (i32.const 1))
2107 (func (result i32) (i32.const 2))
2108 (func (result i32) (i32.const 3))
2109 (func (result i32) (i32.const 4))
2110 (func (result i32) (i32.const 5))
2111 (func (result i32) (i32.const 6))
2112 (func (result i32) (i32.const 7))
2113 (func (result i32) (i32.const 8))
2114 (func (result i32) (i32.const 9))
2115 (func (export "test")
2116 (table.copy $t1 $t0 (i32.const 31) (i32.const 15) (i32.const 0))
2117 ))
2118
2119(assert_trap (invoke "test") "out of bounds table access")
2120
2121(module
2122 (table $t0 30 30 funcref)
2123 (table $t1 30 30 funcref)
2124 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2125 (elem funcref
2126 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2127 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2128 (elem funcref
2129 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2130 (func (result i32) (i32.const 0))
2131 (func (result i32) (i32.const 1))
2132 (func (result i32) (i32.const 2))
2133 (func (result i32) (i32.const 3))
2134 (func (result i32) (i32.const 4))
2135 (func (result i32) (i32.const 5))
2136 (func (result i32) (i32.const 6))
2137 (func (result i32) (i32.const 7))
2138 (func (result i32) (i32.const 8))
2139 (func (result i32) (i32.const 9))
2140 (func (export "test")
2141 (table.copy $t1 $t0 (i32.const 15) (i32.const 30) (i32.const 0))
2142 ))
2143
2144(invoke "test")
2145
2146(module
2147 (table $t0 30 30 funcref)
2148 (table $t1 30 30 funcref)
2149 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2150 (elem funcref
2151 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2152 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2153 (elem funcref
2154 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2155 (func (result i32) (i32.const 0))
2156 (func (result i32) (i32.const 1))
2157 (func (result i32) (i32.const 2))
2158 (func (result i32) (i32.const 3))
2159 (func (result i32) (i32.const 4))
2160 (func (result i32) (i32.const 5))
2161 (func (result i32) (i32.const 6))
2162 (func (result i32) (i32.const 7))
2163 (func (result i32) (i32.const 8))
2164 (func (result i32) (i32.const 9))
2165 (func (export "test")
2166 (table.copy $t1 $t0 (i32.const 15) (i32.const 31) (i32.const 0))
2167 ))
2168
2169(assert_trap (invoke "test") "out of bounds table access")
2170
2171(module
2172 (table $t0 30 30 funcref)
2173 (table $t1 30 30 funcref)
2174 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2175 (elem funcref
2176 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2177 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2178 (elem funcref
2179 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2180 (func (result i32) (i32.const 0))
2181 (func (result i32) (i32.const 1))
2182 (func (result i32) (i32.const 2))
2183 (func (result i32) (i32.const 3))
2184 (func (result i32) (i32.const 4))
2185 (func (result i32) (i32.const 5))
2186 (func (result i32) (i32.const 6))
2187 (func (result i32) (i32.const 7))
2188 (func (result i32) (i32.const 8))
2189 (func (result i32) (i32.const 9))
2190 (func (export "test")
2191 (table.copy $t1 $t0 (i32.const 30) (i32.const 30) (i32.const 0))
2192 ))
2193
2194(invoke "test")
2195
2196(module
2197 (table $t0 30 30 funcref)
2198 (table $t1 30 30 funcref)
2199 (elem (table $t0) (i32.const 2) func 3 1 4 1)
2200 (elem funcref
2201 (ref.func 2) (ref.func 7) (ref.func 1) (ref.func 8))
2202 (elem (table $t0) (i32.const 12) func 7 5 2 3 6)
2203 (elem funcref
2204 (ref.func 5) (ref.func 9) (ref.func 2) (ref.func 7) (ref.func 6))
2205 (func (result i32) (i32.const 0))
2206 (func (result i32) (i32.const 1))
2207 (func (result i32) (i32.const 2))
2208 (func (result i32) (i32.const 3))
2209 (func (result i32) (i32.const 4))
2210 (func (result i32) (i32.const 5))
2211 (func (result i32) (i32.const 6))
2212 (func (result i32) (i32.const 7))
2213 (func (result i32) (i32.const 8))
2214 (func (result i32) (i32.const 9))
2215 (func (export "test")
2216 (table.copy $t1 $t0 (i32.const 31) (i32.const 31) (i32.const 0))
2217 ))
2218
2219(assert_trap (invoke "test") "out of bounds table access")
2220
2221(module
2222 (type (func (result i32)))
2223 (table 32 64 funcref)
2224 (elem (i32.const 0)
2225 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
2226 (func $f0 (export "f0") (result i32) (i32.const 0))
2227 (func $f1 (export "f1") (result i32) (i32.const 1))
2228 (func $f2 (export "f2") (result i32) (i32.const 2))
2229 (func $f3 (export "f3") (result i32) (i32.const 3))
2230 (func $f4 (export "f4") (result i32) (i32.const 4))
2231 (func $f5 (export "f5") (result i32) (i32.const 5))
2232 (func $f6 (export "f6") (result i32) (i32.const 6))
2233 (func $f7 (export "f7") (result i32) (i32.const 7))
2234 (func $f8 (export "f8") (result i32) (i32.const 8))
2235 (func $f9 (export "f9") (result i32) (i32.const 9))
2236 (func $f10 (export "f10") (result i32) (i32.const 10))
2237 (func $f11 (export "f11") (result i32) (i32.const 11))
2238 (func $f12 (export "f12") (result i32) (i32.const 12))
2239 (func $f13 (export "f13") (result i32) (i32.const 13))
2240 (func $f14 (export "f14") (result i32) (i32.const 14))
2241 (func $f15 (export "f15") (result i32) (i32.const 15))
2242 (func (export "test") (param $n i32) (result i32)
2243 (call_indirect (type 0) (local.get $n)))
2244 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2245 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2246
2247(assert_trap (invoke "run" (i32.const 24) (i32.const 0) (i32.const 16))
2248 "out of bounds table access")
2249(assert_return (invoke "test" (i32.const 0)) (i32.const 0))
2250(assert_return (invoke "test" (i32.const 1)) (i32.const 1))
2251(assert_return (invoke "test" (i32.const 2)) (i32.const 2))
2252(assert_return (invoke "test" (i32.const 3)) (i32.const 3))
2253(assert_return (invoke "test" (i32.const 4)) (i32.const 4))
2254(assert_return (invoke "test" (i32.const 5)) (i32.const 5))
2255(assert_return (invoke "test" (i32.const 6)) (i32.const 6))
2256(assert_return (invoke "test" (i32.const 7)) (i32.const 7))
2257(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2258(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2259(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2260(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2261(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2262(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2263(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2264(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2265(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2266(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2267(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2268(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2269(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2270(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2271(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2272(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2273(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
2274(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
2275(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
2276(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
2277(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
2278(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
2279(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
2280(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
2281
2282(module
2283 (type (func (result i32)))
2284 (table 32 64 funcref)
2285 (elem (i32.const 0)
2286 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8)
2287 (func $f0 (export "f0") (result i32) (i32.const 0))
2288 (func $f1 (export "f1") (result i32) (i32.const 1))
2289 (func $f2 (export "f2") (result i32) (i32.const 2))
2290 (func $f3 (export "f3") (result i32) (i32.const 3))
2291 (func $f4 (export "f4") (result i32) (i32.const 4))
2292 (func $f5 (export "f5") (result i32) (i32.const 5))
2293 (func $f6 (export "f6") (result i32) (i32.const 6))
2294 (func $f7 (export "f7") (result i32) (i32.const 7))
2295 (func $f8 (export "f8") (result i32) (i32.const 8))
2296 (func $f9 (export "f9") (result i32) (i32.const 9))
2297 (func $f10 (export "f10") (result i32) (i32.const 10))
2298 (func $f11 (export "f11") (result i32) (i32.const 11))
2299 (func $f12 (export "f12") (result i32) (i32.const 12))
2300 (func $f13 (export "f13") (result i32) (i32.const 13))
2301 (func $f14 (export "f14") (result i32) (i32.const 14))
2302 (func $f15 (export "f15") (result i32) (i32.const 15))
2303 (func (export "test") (param $n i32) (result i32)
2304 (call_indirect (type 0) (local.get $n)))
2305 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2306 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2307
2308(assert_trap (invoke "run" (i32.const 23) (i32.const 0) (i32.const 15))
2309 "out of bounds table access")
2310(assert_return (invoke "test" (i32.const 0)) (i32.const 0))
2311(assert_return (invoke "test" (i32.const 1)) (i32.const 1))
2312(assert_return (invoke "test" (i32.const 2)) (i32.const 2))
2313(assert_return (invoke "test" (i32.const 3)) (i32.const 3))
2314(assert_return (invoke "test" (i32.const 4)) (i32.const 4))
2315(assert_return (invoke "test" (i32.const 5)) (i32.const 5))
2316(assert_return (invoke "test" (i32.const 6)) (i32.const 6))
2317(assert_return (invoke "test" (i32.const 7)) (i32.const 7))
2318(assert_return (invoke "test" (i32.const 8)) (i32.const 8))
2319(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2320(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2321(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2322(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2323(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2324(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2325(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2326(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2327(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2328(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2329(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2330(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2331(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2332(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2333(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2334(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
2335(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
2336(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
2337(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
2338(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
2339(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
2340(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
2341(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
2342
2343(module
2344 (type (func (result i32)))
2345 (table 32 64 funcref)
2346 (elem (i32.const 24)
2347 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
2348 (func $f0 (export "f0") (result i32) (i32.const 0))
2349 (func $f1 (export "f1") (result i32) (i32.const 1))
2350 (func $f2 (export "f2") (result i32) (i32.const 2))
2351 (func $f3 (export "f3") (result i32) (i32.const 3))
2352 (func $f4 (export "f4") (result i32) (i32.const 4))
2353 (func $f5 (export "f5") (result i32) (i32.const 5))
2354 (func $f6 (export "f6") (result i32) (i32.const 6))
2355 (func $f7 (export "f7") (result i32) (i32.const 7))
2356 (func $f8 (export "f8") (result i32) (i32.const 8))
2357 (func $f9 (export "f9") (result i32) (i32.const 9))
2358 (func $f10 (export "f10") (result i32) (i32.const 10))
2359 (func $f11 (export "f11") (result i32) (i32.const 11))
2360 (func $f12 (export "f12") (result i32) (i32.const 12))
2361 (func $f13 (export "f13") (result i32) (i32.const 13))
2362 (func $f14 (export "f14") (result i32) (i32.const 14))
2363 (func $f15 (export "f15") (result i32) (i32.const 15))
2364 (func (export "test") (param $n i32) (result i32)
2365 (call_indirect (type 0) (local.get $n)))
2366 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2367 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2368
2369(assert_trap (invoke "run" (i32.const 0) (i32.const 24) (i32.const 16))
2370 "out of bounds table access")
2371(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2372(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2373(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2374(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2375(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2376(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2377(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2378(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2379(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2380(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2381(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2382(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2383(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2384(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2385(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2386(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2387(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2388(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2389(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2390(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2391(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2392(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2393(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2394(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2395(assert_return (invoke "test" (i32.const 24)) (i32.const 0))
2396(assert_return (invoke "test" (i32.const 25)) (i32.const 1))
2397(assert_return (invoke "test" (i32.const 26)) (i32.const 2))
2398(assert_return (invoke "test" (i32.const 27)) (i32.const 3))
2399(assert_return (invoke "test" (i32.const 28)) (i32.const 4))
2400(assert_return (invoke "test" (i32.const 29)) (i32.const 5))
2401(assert_return (invoke "test" (i32.const 30)) (i32.const 6))
2402(assert_return (invoke "test" (i32.const 31)) (i32.const 7))
2403
2404(module
2405 (type (func (result i32)))
2406 (table 32 64 funcref)
2407 (elem (i32.const 23)
2408 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8)
2409 (func $f0 (export "f0") (result i32) (i32.const 0))
2410 (func $f1 (export "f1") (result i32) (i32.const 1))
2411 (func $f2 (export "f2") (result i32) (i32.const 2))
2412 (func $f3 (export "f3") (result i32) (i32.const 3))
2413 (func $f4 (export "f4") (result i32) (i32.const 4))
2414 (func $f5 (export "f5") (result i32) (i32.const 5))
2415 (func $f6 (export "f6") (result i32) (i32.const 6))
2416 (func $f7 (export "f7") (result i32) (i32.const 7))
2417 (func $f8 (export "f8") (result i32) (i32.const 8))
2418 (func $f9 (export "f9") (result i32) (i32.const 9))
2419 (func $f10 (export "f10") (result i32) (i32.const 10))
2420 (func $f11 (export "f11") (result i32) (i32.const 11))
2421 (func $f12 (export "f12") (result i32) (i32.const 12))
2422 (func $f13 (export "f13") (result i32) (i32.const 13))
2423 (func $f14 (export "f14") (result i32) (i32.const 14))
2424 (func $f15 (export "f15") (result i32) (i32.const 15))
2425 (func (export "test") (param $n i32) (result i32)
2426 (call_indirect (type 0) (local.get $n)))
2427 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2428 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2429
2430(assert_trap (invoke "run" (i32.const 0) (i32.const 23) (i32.const 15))
2431 "out of bounds table access")
2432(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2433(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2434(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2435(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2436(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2437(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2438(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2439(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2440(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2441(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2442(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2443(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2444(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2445(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2446(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2447(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2448(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2449(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2450(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2451(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2452(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2453(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2454(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2455(assert_return (invoke "test" (i32.const 23)) (i32.const 0))
2456(assert_return (invoke "test" (i32.const 24)) (i32.const 1))
2457(assert_return (invoke "test" (i32.const 25)) (i32.const 2))
2458(assert_return (invoke "test" (i32.const 26)) (i32.const 3))
2459(assert_return (invoke "test" (i32.const 27)) (i32.const 4))
2460(assert_return (invoke "test" (i32.const 28)) (i32.const 5))
2461(assert_return (invoke "test" (i32.const 29)) (i32.const 6))
2462(assert_return (invoke "test" (i32.const 30)) (i32.const 7))
2463(assert_return (invoke "test" (i32.const 31)) (i32.const 8))
2464
2465(module
2466 (type (func (result i32)))
2467 (table 32 64 funcref)
2468 (elem (i32.const 11)
2469 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
2470 (func $f0 (export "f0") (result i32) (i32.const 0))
2471 (func $f1 (export "f1") (result i32) (i32.const 1))
2472 (func $f2 (export "f2") (result i32) (i32.const 2))
2473 (func $f3 (export "f3") (result i32) (i32.const 3))
2474 (func $f4 (export "f4") (result i32) (i32.const 4))
2475 (func $f5 (export "f5") (result i32) (i32.const 5))
2476 (func $f6 (export "f6") (result i32) (i32.const 6))
2477 (func $f7 (export "f7") (result i32) (i32.const 7))
2478 (func $f8 (export "f8") (result i32) (i32.const 8))
2479 (func $f9 (export "f9") (result i32) (i32.const 9))
2480 (func $f10 (export "f10") (result i32) (i32.const 10))
2481 (func $f11 (export "f11") (result i32) (i32.const 11))
2482 (func $f12 (export "f12") (result i32) (i32.const 12))
2483 (func $f13 (export "f13") (result i32) (i32.const 13))
2484 (func $f14 (export "f14") (result i32) (i32.const 14))
2485 (func $f15 (export "f15") (result i32) (i32.const 15))
2486 (func (export "test") (param $n i32) (result i32)
2487 (call_indirect (type 0) (local.get $n)))
2488 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2489 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2490
2491(assert_trap (invoke "run" (i32.const 24) (i32.const 11) (i32.const 16))
2492 "out of bounds table access")
2493(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2494(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2495(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2496(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2497(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2498(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2499(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2500(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2501(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2502(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2503(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2504(assert_return (invoke "test" (i32.const 11)) (i32.const 0))
2505(assert_return (invoke "test" (i32.const 12)) (i32.const 1))
2506(assert_return (invoke "test" (i32.const 13)) (i32.const 2))
2507(assert_return (invoke "test" (i32.const 14)) (i32.const 3))
2508(assert_return (invoke "test" (i32.const 15)) (i32.const 4))
2509(assert_return (invoke "test" (i32.const 16)) (i32.const 5))
2510(assert_return (invoke "test" (i32.const 17)) (i32.const 6))
2511(assert_return (invoke "test" (i32.const 18)) (i32.const 7))
2512(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2513(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2514(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2515(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2516(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2517(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
2518(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
2519(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
2520(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
2521(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
2522(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
2523(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
2524(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
2525
2526(module
2527 (type (func (result i32)))
2528 (table 32 64 funcref)
2529 (elem (i32.const 24)
2530 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
2531 (func $f0 (export "f0") (result i32) (i32.const 0))
2532 (func $f1 (export "f1") (result i32) (i32.const 1))
2533 (func $f2 (export "f2") (result i32) (i32.const 2))
2534 (func $f3 (export "f3") (result i32) (i32.const 3))
2535 (func $f4 (export "f4") (result i32) (i32.const 4))
2536 (func $f5 (export "f5") (result i32) (i32.const 5))
2537 (func $f6 (export "f6") (result i32) (i32.const 6))
2538 (func $f7 (export "f7") (result i32) (i32.const 7))
2539 (func $f8 (export "f8") (result i32) (i32.const 8))
2540 (func $f9 (export "f9") (result i32) (i32.const 9))
2541 (func $f10 (export "f10") (result i32) (i32.const 10))
2542 (func $f11 (export "f11") (result i32) (i32.const 11))
2543 (func $f12 (export "f12") (result i32) (i32.const 12))
2544 (func $f13 (export "f13") (result i32) (i32.const 13))
2545 (func $f14 (export "f14") (result i32) (i32.const 14))
2546 (func $f15 (export "f15") (result i32) (i32.const 15))
2547 (func (export "test") (param $n i32) (result i32)
2548 (call_indirect (type 0) (local.get $n)))
2549 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2550 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2551
2552(assert_trap (invoke "run" (i32.const 11) (i32.const 24) (i32.const 16))
2553 "out of bounds table access")
2554(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2555(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2556(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2557(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2558(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2559(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2560(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2561(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2562(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2563(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2564(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2565(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2566(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2567(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2568(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2569(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2570(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2571(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2572(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2573(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2574(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2575(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2576(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2577(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2578(assert_return (invoke "test" (i32.const 24)) (i32.const 0))
2579(assert_return (invoke "test" (i32.const 25)) (i32.const 1))
2580(assert_return (invoke "test" (i32.const 26)) (i32.const 2))
2581(assert_return (invoke "test" (i32.const 27)) (i32.const 3))
2582(assert_return (invoke "test" (i32.const 28)) (i32.const 4))
2583(assert_return (invoke "test" (i32.const 29)) (i32.const 5))
2584(assert_return (invoke "test" (i32.const 30)) (i32.const 6))
2585(assert_return (invoke "test" (i32.const 31)) (i32.const 7))
2586
2587(module
2588 (type (func (result i32)))
2589 (table 32 64 funcref)
2590 (elem (i32.const 21)
2591 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
2592 (func $f0 (export "f0") (result i32) (i32.const 0))
2593 (func $f1 (export "f1") (result i32) (i32.const 1))
2594 (func $f2 (export "f2") (result i32) (i32.const 2))
2595 (func $f3 (export "f3") (result i32) (i32.const 3))
2596 (func $f4 (export "f4") (result i32) (i32.const 4))
2597 (func $f5 (export "f5") (result i32) (i32.const 5))
2598 (func $f6 (export "f6") (result i32) (i32.const 6))
2599 (func $f7 (export "f7") (result i32) (i32.const 7))
2600 (func $f8 (export "f8") (result i32) (i32.const 8))
2601 (func $f9 (export "f9") (result i32) (i32.const 9))
2602 (func $f10 (export "f10") (result i32) (i32.const 10))
2603 (func $f11 (export "f11") (result i32) (i32.const 11))
2604 (func $f12 (export "f12") (result i32) (i32.const 12))
2605 (func $f13 (export "f13") (result i32) (i32.const 13))
2606 (func $f14 (export "f14") (result i32) (i32.const 14))
2607 (func $f15 (export "f15") (result i32) (i32.const 15))
2608 (func (export "test") (param $n i32) (result i32)
2609 (call_indirect (type 0) (local.get $n)))
2610 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2611 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2612
2613(assert_trap (invoke "run" (i32.const 24) (i32.const 21) (i32.const 16))
2614 "out of bounds table access")
2615(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2616(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2617(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2618(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2619(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2620(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2621(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2622(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2623(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2624(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2625(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2626(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2627(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2628(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2629(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2630(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2631(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2632(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2633(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2634(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2635(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2636(assert_return (invoke "test" (i32.const 21)) (i32.const 0))
2637(assert_return (invoke "test" (i32.const 22)) (i32.const 1))
2638(assert_return (invoke "test" (i32.const 23)) (i32.const 2))
2639(assert_return (invoke "test" (i32.const 24)) (i32.const 3))
2640(assert_return (invoke "test" (i32.const 25)) (i32.const 4))
2641(assert_return (invoke "test" (i32.const 26)) (i32.const 5))
2642(assert_return (invoke "test" (i32.const 27)) (i32.const 6))
2643(assert_return (invoke "test" (i32.const 28)) (i32.const 7))
2644(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
2645(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
2646(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
2647
2648(module
2649 (type (func (result i32)))
2650 (table 32 64 funcref)
2651 (elem (i32.const 24)
2652 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7)
2653 (func $f0 (export "f0") (result i32) (i32.const 0))
2654 (func $f1 (export "f1") (result i32) (i32.const 1))
2655 (func $f2 (export "f2") (result i32) (i32.const 2))
2656 (func $f3 (export "f3") (result i32) (i32.const 3))
2657 (func $f4 (export "f4") (result i32) (i32.const 4))
2658 (func $f5 (export "f5") (result i32) (i32.const 5))
2659 (func $f6 (export "f6") (result i32) (i32.const 6))
2660 (func $f7 (export "f7") (result i32) (i32.const 7))
2661 (func $f8 (export "f8") (result i32) (i32.const 8))
2662 (func $f9 (export "f9") (result i32) (i32.const 9))
2663 (func $f10 (export "f10") (result i32) (i32.const 10))
2664 (func $f11 (export "f11") (result i32) (i32.const 11))
2665 (func $f12 (export "f12") (result i32) (i32.const 12))
2666 (func $f13 (export "f13") (result i32) (i32.const 13))
2667 (func $f14 (export "f14") (result i32) (i32.const 14))
2668 (func $f15 (export "f15") (result i32) (i32.const 15))
2669 (func (export "test") (param $n i32) (result i32)
2670 (call_indirect (type 0) (local.get $n)))
2671 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2672 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2673
2674(assert_trap (invoke "run" (i32.const 21) (i32.const 24) (i32.const 16))
2675 "out of bounds table access")
2676(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2677(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2678(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2679(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2680(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2681(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2682(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2683(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2684(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2685(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2686(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2687(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2688(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2689(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2690(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2691(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2692(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2693(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2694(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2695(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2696(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2697(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2698(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2699(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2700(assert_return (invoke "test" (i32.const 24)) (i32.const 0))
2701(assert_return (invoke "test" (i32.const 25)) (i32.const 1))
2702(assert_return (invoke "test" (i32.const 26)) (i32.const 2))
2703(assert_return (invoke "test" (i32.const 27)) (i32.const 3))
2704(assert_return (invoke "test" (i32.const 28)) (i32.const 4))
2705(assert_return (invoke "test" (i32.const 29)) (i32.const 5))
2706(assert_return (invoke "test" (i32.const 30)) (i32.const 6))
2707(assert_return (invoke "test" (i32.const 31)) (i32.const 7))
2708
2709(module
2710 (type (func (result i32)))
2711 (table 32 64 funcref)
2712 (elem (i32.const 21)
2713 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8 $f9 $f10)
2714 (func $f0 (export "f0") (result i32) (i32.const 0))
2715 (func $f1 (export "f1") (result i32) (i32.const 1))
2716 (func $f2 (export "f2") (result i32) (i32.const 2))
2717 (func $f3 (export "f3") (result i32) (i32.const 3))
2718 (func $f4 (export "f4") (result i32) (i32.const 4))
2719 (func $f5 (export "f5") (result i32) (i32.const 5))
2720 (func $f6 (export "f6") (result i32) (i32.const 6))
2721 (func $f7 (export "f7") (result i32) (i32.const 7))
2722 (func $f8 (export "f8") (result i32) (i32.const 8))
2723 (func $f9 (export "f9") (result i32) (i32.const 9))
2724 (func $f10 (export "f10") (result i32) (i32.const 10))
2725 (func $f11 (export "f11") (result i32) (i32.const 11))
2726 (func $f12 (export "f12") (result i32) (i32.const 12))
2727 (func $f13 (export "f13") (result i32) (i32.const 13))
2728 (func $f14 (export "f14") (result i32) (i32.const 14))
2729 (func $f15 (export "f15") (result i32) (i32.const 15))
2730 (func (export "test") (param $n i32) (result i32)
2731 (call_indirect (type 0) (local.get $n)))
2732 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2733 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2734
2735(assert_trap (invoke "run" (i32.const 21) (i32.const 21) (i32.const 16))
2736 "out of bounds table access")
2737(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2738(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2739(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2740(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2741(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2742(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2743(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2744(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2745(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2746(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2747(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2748(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2749(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2750(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2751(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2752(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2753(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2754(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2755(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2756(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2757(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2758(assert_return (invoke "test" (i32.const 21)) (i32.const 0))
2759(assert_return (invoke "test" (i32.const 22)) (i32.const 1))
2760(assert_return (invoke "test" (i32.const 23)) (i32.const 2))
2761(assert_return (invoke "test" (i32.const 24)) (i32.const 3))
2762(assert_return (invoke "test" (i32.const 25)) (i32.const 4))
2763(assert_return (invoke "test" (i32.const 26)) (i32.const 5))
2764(assert_return (invoke "test" (i32.const 27)) (i32.const 6))
2765(assert_return (invoke "test" (i32.const 28)) (i32.const 7))
2766(assert_return (invoke "test" (i32.const 29)) (i32.const 8))
2767(assert_return (invoke "test" (i32.const 30)) (i32.const 9))
2768(assert_return (invoke "test" (i32.const 31)) (i32.const 10))
2769
2770(module
2771 (type (func (result i32)))
2772 (table 128 128 funcref)
2773 (elem (i32.const 112)
2774 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15)
2775 (func $f0 (export "f0") (result i32) (i32.const 0))
2776 (func $f1 (export "f1") (result i32) (i32.const 1))
2777 (func $f2 (export "f2") (result i32) (i32.const 2))
2778 (func $f3 (export "f3") (result i32) (i32.const 3))
2779 (func $f4 (export "f4") (result i32) (i32.const 4))
2780 (func $f5 (export "f5") (result i32) (i32.const 5))
2781 (func $f6 (export "f6") (result i32) (i32.const 6))
2782 (func $f7 (export "f7") (result i32) (i32.const 7))
2783 (func $f8 (export "f8") (result i32) (i32.const 8))
2784 (func $f9 (export "f9") (result i32) (i32.const 9))
2785 (func $f10 (export "f10") (result i32) (i32.const 10))
2786 (func $f11 (export "f11") (result i32) (i32.const 11))
2787 (func $f12 (export "f12") (result i32) (i32.const 12))
2788 (func $f13 (export "f13") (result i32) (i32.const 13))
2789 (func $f14 (export "f14") (result i32) (i32.const 14))
2790 (func $f15 (export "f15") (result i32) (i32.const 15))
2791 (func (export "test") (param $n i32) (result i32)
2792 (call_indirect (type 0) (local.get $n)))
2793 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2794 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2795
2796(assert_trap (invoke "run" (i32.const 0) (i32.const 112) (i32.const 4294967264))
2797 "out of bounds table access")
2798(assert_trap (invoke "test" (i32.const 0)) "uninitialized element")
2799(assert_trap (invoke "test" (i32.const 1)) "uninitialized element")
2800(assert_trap (invoke "test" (i32.const 2)) "uninitialized element")
2801(assert_trap (invoke "test" (i32.const 3)) "uninitialized element")
2802(assert_trap (invoke "test" (i32.const 4)) "uninitialized element")
2803(assert_trap (invoke "test" (i32.const 5)) "uninitialized element")
2804(assert_trap (invoke "test" (i32.const 6)) "uninitialized element")
2805(assert_trap (invoke "test" (i32.const 7)) "uninitialized element")
2806(assert_trap (invoke "test" (i32.const 8)) "uninitialized element")
2807(assert_trap (invoke "test" (i32.const 9)) "uninitialized element")
2808(assert_trap (invoke "test" (i32.const 10)) "uninitialized element")
2809(assert_trap (invoke "test" (i32.const 11)) "uninitialized element")
2810(assert_trap (invoke "test" (i32.const 12)) "uninitialized element")
2811(assert_trap (invoke "test" (i32.const 13)) "uninitialized element")
2812(assert_trap (invoke "test" (i32.const 14)) "uninitialized element")
2813(assert_trap (invoke "test" (i32.const 15)) "uninitialized element")
2814(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2815(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2816(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2817(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2818(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2819(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2820(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2821(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2822(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
2823(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
2824(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
2825(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
2826(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
2827(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
2828(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
2829(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
2830(assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
2831(assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
2832(assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
2833(assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
2834(assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
2835(assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
2836(assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
2837(assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
2838(assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
2839(assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
2840(assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
2841(assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
2842(assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
2843(assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
2844(assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
2845(assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
2846(assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
2847(assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
2848(assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
2849(assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
2850(assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
2851(assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
2852(assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
2853(assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
2854(assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
2855(assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
2856(assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
2857(assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
2858(assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
2859(assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
2860(assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
2861(assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
2862(assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
2863(assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
2864(assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
2865(assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
2866(assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
2867(assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
2868(assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
2869(assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
2870(assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
2871(assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
2872(assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
2873(assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
2874(assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
2875(assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
2876(assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
2877(assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
2878(assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
2879(assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
2880(assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
2881(assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
2882(assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
2883(assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
2884(assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
2885(assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
2886(assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
2887(assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
2888(assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
2889(assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
2890(assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
2891(assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
2892(assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
2893(assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
2894(assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
2895(assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
2896(assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
2897(assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
2898(assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
2899(assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
2900(assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
2901(assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
2902(assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
2903(assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
2904(assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
2905(assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
2906(assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
2907(assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
2908(assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
2909(assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
2910(assert_return (invoke "test" (i32.const 112)) (i32.const 0))
2911(assert_return (invoke "test" (i32.const 113)) (i32.const 1))
2912(assert_return (invoke "test" (i32.const 114)) (i32.const 2))
2913(assert_return (invoke "test" (i32.const 115)) (i32.const 3))
2914(assert_return (invoke "test" (i32.const 116)) (i32.const 4))
2915(assert_return (invoke "test" (i32.const 117)) (i32.const 5))
2916(assert_return (invoke "test" (i32.const 118)) (i32.const 6))
2917(assert_return (invoke "test" (i32.const 119)) (i32.const 7))
2918(assert_return (invoke "test" (i32.const 120)) (i32.const 8))
2919(assert_return (invoke "test" (i32.const 121)) (i32.const 9))
2920(assert_return (invoke "test" (i32.const 122)) (i32.const 10))
2921(assert_return (invoke "test" (i32.const 123)) (i32.const 11))
2922(assert_return (invoke "test" (i32.const 124)) (i32.const 12))
2923(assert_return (invoke "test" (i32.const 125)) (i32.const 13))
2924(assert_return (invoke "test" (i32.const 126)) (i32.const 14))
2925(assert_return (invoke "test" (i32.const 127)) (i32.const 15))
2926
2927(module
2928 (type (func (result i32)))
2929 (table 128 128 funcref)
2930 (elem (i32.const 0)
2931 $f0 $f1 $f2 $f3 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15)
2932 (func $f0 (export "f0") (result i32) (i32.const 0))
2933 (func $f1 (export "f1") (result i32) (i32.const 1))
2934 (func $f2 (export "f2") (result i32) (i32.const 2))
2935 (func $f3 (export "f3") (result i32) (i32.const 3))
2936 (func $f4 (export "f4") (result i32) (i32.const 4))
2937 (func $f5 (export "f5") (result i32) (i32.const 5))
2938 (func $f6 (export "f6") (result i32) (i32.const 6))
2939 (func $f7 (export "f7") (result i32) (i32.const 7))
2940 (func $f8 (export "f8") (result i32) (i32.const 8))
2941 (func $f9 (export "f9") (result i32) (i32.const 9))
2942 (func $f10 (export "f10") (result i32) (i32.const 10))
2943 (func $f11 (export "f11") (result i32) (i32.const 11))
2944 (func $f12 (export "f12") (result i32) (i32.const 12))
2945 (func $f13 (export "f13") (result i32) (i32.const 13))
2946 (func $f14 (export "f14") (result i32) (i32.const 14))
2947 (func $f15 (export "f15") (result i32) (i32.const 15))
2948 (func (export "test") (param $n i32) (result i32)
2949 (call_indirect (type 0) (local.get $n)))
2950 (func (export "run") (param $targetOffs i32) (param $srcOffs i32) (param $len i32)
2951 (table.copy (local.get $targetOffs) (local.get $srcOffs) (local.get $len))))
2952
2953(assert_trap (invoke "run" (i32.const 112) (i32.const 0) (i32.const 4294967264))
2954 "out of bounds table access")
2955(assert_return (invoke "test" (i32.const 0)) (i32.const 0))
2956(assert_return (invoke "test" (i32.const 1)) (i32.const 1))
2957(assert_return (invoke "test" (i32.const 2)) (i32.const 2))
2958(assert_return (invoke "test" (i32.const 3)) (i32.const 3))
2959(assert_return (invoke "test" (i32.const 4)) (i32.const 4))
2960(assert_return (invoke "test" (i32.const 5)) (i32.const 5))
2961(assert_return (invoke "test" (i32.const 6)) (i32.const 6))
2962(assert_return (invoke "test" (i32.const 7)) (i32.const 7))
2963(assert_return (invoke "test" (i32.const 8)) (i32.const 8))
2964(assert_return (invoke "test" (i32.const 9)) (i32.const 9))
2965(assert_return (invoke "test" (i32.const 10)) (i32.const 10))
2966(assert_return (invoke "test" (i32.const 11)) (i32.const 11))
2967(assert_return (invoke "test" (i32.const 12)) (i32.const 12))
2968(assert_return (invoke "test" (i32.const 13)) (i32.const 13))
2969(assert_return (invoke "test" (i32.const 14)) (i32.const 14))
2970(assert_return (invoke "test" (i32.const 15)) (i32.const 15))
2971(assert_trap (invoke "test" (i32.const 16)) "uninitialized element")
2972(assert_trap (invoke "test" (i32.const 17)) "uninitialized element")
2973(assert_trap (invoke "test" (i32.const 18)) "uninitialized element")
2974(assert_trap (invoke "test" (i32.const 19)) "uninitialized element")
2975(assert_trap (invoke "test" (i32.const 20)) "uninitialized element")
2976(assert_trap (invoke "test" (i32.const 21)) "uninitialized element")
2977(assert_trap (invoke "test" (i32.const 22)) "uninitialized element")
2978(assert_trap (invoke "test" (i32.const 23)) "uninitialized element")
2979(assert_trap (invoke "test" (i32.const 24)) "uninitialized element")
2980(assert_trap (invoke "test" (i32.const 25)) "uninitialized element")
2981(assert_trap (invoke "test" (i32.const 26)) "uninitialized element")
2982(assert_trap (invoke "test" (i32.const 27)) "uninitialized element")
2983(assert_trap (invoke "test" (i32.const 28)) "uninitialized element")
2984(assert_trap (invoke "test" (i32.const 29)) "uninitialized element")
2985(assert_trap (invoke "test" (i32.const 30)) "uninitialized element")
2986(assert_trap (invoke "test" (i32.const 31)) "uninitialized element")
2987(assert_trap (invoke "test" (i32.const 32)) "uninitialized element")
2988(assert_trap (invoke "test" (i32.const 33)) "uninitialized element")
2989(assert_trap (invoke "test" (i32.const 34)) "uninitialized element")
2990(assert_trap (invoke "test" (i32.const 35)) "uninitialized element")
2991(assert_trap (invoke "test" (i32.const 36)) "uninitialized element")
2992(assert_trap (invoke "test" (i32.const 37)) "uninitialized element")
2993(assert_trap (invoke "test" (i32.const 38)) "uninitialized element")
2994(assert_trap (invoke "test" (i32.const 39)) "uninitialized element")
2995(assert_trap (invoke "test" (i32.const 40)) "uninitialized element")
2996(assert_trap (invoke "test" (i32.const 41)) "uninitialized element")
2997(assert_trap (invoke "test" (i32.const 42)) "uninitialized element")
2998(assert_trap (invoke "test" (i32.const 43)) "uninitialized element")
2999(assert_trap (invoke "test" (i32.const 44)) "uninitialized element")
3000(assert_trap (invoke "test" (i32.const 45)) "uninitialized element")
3001(assert_trap (invoke "test" (i32.const 46)) "uninitialized element")
3002(assert_trap (invoke "test" (i32.const 47)) "uninitialized element")
3003(assert_trap (invoke "test" (i32.const 48)) "uninitialized element")
3004(assert_trap (invoke "test" (i32.const 49)) "uninitialized element")
3005(assert_trap (invoke "test" (i32.const 50)) "uninitialized element")
3006(assert_trap (invoke "test" (i32.const 51)) "uninitialized element")
3007(assert_trap (invoke "test" (i32.const 52)) "uninitialized element")
3008(assert_trap (invoke "test" (i32.const 53)) "uninitialized element")
3009(assert_trap (invoke "test" (i32.const 54)) "uninitialized element")
3010(assert_trap (invoke "test" (i32.const 55)) "uninitialized element")
3011(assert_trap (invoke "test" (i32.const 56)) "uninitialized element")
3012(assert_trap (invoke "test" (i32.const 57)) "uninitialized element")
3013(assert_trap (invoke "test" (i32.const 58)) "uninitialized element")
3014(assert_trap (invoke "test" (i32.const 59)) "uninitialized element")
3015(assert_trap (invoke "test" (i32.const 60)) "uninitialized element")
3016(assert_trap (invoke "test" (i32.const 61)) "uninitialized element")
3017(assert_trap (invoke "test" (i32.const 62)) "uninitialized element")
3018(assert_trap (invoke "test" (i32.const 63)) "uninitialized element")
3019(assert_trap (invoke "test" (i32.const 64)) "uninitialized element")
3020(assert_trap (invoke "test" (i32.const 65)) "uninitialized element")
3021(assert_trap (invoke "test" (i32.const 66)) "uninitialized element")
3022(assert_trap (invoke "test" (i32.const 67)) "uninitialized element")
3023(assert_trap (invoke "test" (i32.const 68)) "uninitialized element")
3024(assert_trap (invoke "test" (i32.const 69)) "uninitialized element")
3025(assert_trap (invoke "test" (i32.const 70)) "uninitialized element")
3026(assert_trap (invoke "test" (i32.const 71)) "uninitialized element")
3027(assert_trap (invoke "test" (i32.const 72)) "uninitialized element")
3028(assert_trap (invoke "test" (i32.const 73)) "uninitialized element")
3029(assert_trap (invoke "test" (i32.const 74)) "uninitialized element")
3030(assert_trap (invoke "test" (i32.const 75)) "uninitialized element")
3031(assert_trap (invoke "test" (i32.const 76)) "uninitialized element")
3032(assert_trap (invoke "test" (i32.const 77)) "uninitialized element")
3033(assert_trap (invoke "test" (i32.const 78)) "uninitialized element")
3034(assert_trap (invoke "test" (i32.const 79)) "uninitialized element")
3035(assert_trap (invoke "test" (i32.const 80)) "uninitialized element")
3036(assert_trap (invoke "test" (i32.const 81)) "uninitialized element")
3037(assert_trap (invoke "test" (i32.const 82)) "uninitialized element")
3038(assert_trap (invoke "test" (i32.const 83)) "uninitialized element")
3039(assert_trap (invoke "test" (i32.const 84)) "uninitialized element")
3040(assert_trap (invoke "test" (i32.const 85)) "uninitialized element")
3041(assert_trap (invoke "test" (i32.const 86)) "uninitialized element")
3042(assert_trap (invoke "test" (i32.const 87)) "uninitialized element")
3043(assert_trap (invoke "test" (i32.const 88)) "uninitialized element")
3044(assert_trap (invoke "test" (i32.const 89)) "uninitialized element")
3045(assert_trap (invoke "test" (i32.const 90)) "uninitialized element")
3046(assert_trap (invoke "test" (i32.const 91)) "uninitialized element")
3047(assert_trap (invoke "test" (i32.const 92)) "uninitialized element")
3048(assert_trap (invoke "test" (i32.const 93)) "uninitialized element")
3049(assert_trap (invoke "test" (i32.const 94)) "uninitialized element")
3050(assert_trap (invoke "test" (i32.const 95)) "uninitialized element")
3051(assert_trap (invoke "test" (i32.const 96)) "uninitialized element")
3052(assert_trap (invoke "test" (i32.const 97)) "uninitialized element")
3053(assert_trap (invoke "test" (i32.const 98)) "uninitialized element")
3054(assert_trap (invoke "test" (i32.const 99)) "uninitialized element")
3055(assert_trap (invoke "test" (i32.const 100)) "uninitialized element")
3056(assert_trap (invoke "test" (i32.const 101)) "uninitialized element")
3057(assert_trap (invoke "test" (i32.const 102)) "uninitialized element")
3058(assert_trap (invoke "test" (i32.const 103)) "uninitialized element")
3059(assert_trap (invoke "test" (i32.const 104)) "uninitialized element")
3060(assert_trap (invoke "test" (i32.const 105)) "uninitialized element")
3061(assert_trap (invoke "test" (i32.const 106)) "uninitialized element")
3062(assert_trap (invoke "test" (i32.const 107)) "uninitialized element")
3063(assert_trap (invoke "test" (i32.const 108)) "uninitialized element")
3064(assert_trap (invoke "test" (i32.const 109)) "uninitialized element")
3065(assert_trap (invoke "test" (i32.const 110)) "uninitialized element")
3066(assert_trap (invoke "test" (i32.const 111)) "uninitialized element")
3067(assert_trap (invoke "test" (i32.const 112)) "uninitialized element")
3068(assert_trap (invoke "test" (i32.const 113)) "uninitialized element")
3069(assert_trap (invoke "test" (i32.const 114)) "uninitialized element")
3070(assert_trap (invoke "test" (i32.const 115)) "uninitialized element")
3071(assert_trap (invoke "test" (i32.const 116)) "uninitialized element")
3072(assert_trap (invoke "test" (i32.const 117)) "uninitialized element")
3073(assert_trap (invoke "test" (i32.const 118)) "uninitialized element")
3074(assert_trap (invoke "test" (i32.const 119)) "uninitialized element")
3075(assert_trap (invoke "test" (i32.const 120)) "uninitialized element")
3076(assert_trap (invoke "test" (i32.const 121)) "uninitialized element")
3077(assert_trap (invoke "test" (i32.const 122)) "uninitialized element")
3078(assert_trap (invoke "test" (i32.const 123)) "uninitialized element")
3079(assert_trap (invoke "test" (i32.const 124)) "uninitialized element")
3080(assert_trap (invoke "test" (i32.const 125)) "uninitialized element")
3081(assert_trap (invoke "test" (i32.const 126)) "uninitialized element")
3082(assert_trap (invoke "test" (i32.const 127)) "uninitialized element")
View as plain text