-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathlinking1.wast
More file actions
65 lines (52 loc) · 1.59 KB
/
linking1.wast
File metadata and controls
65 lines (52 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(module $Mm
(memory $mem0 (export "mem0") 0 0)
(memory $mem1 (export "mem1") 1 5)
(memory $mem2 (export "mem2") 0 0)
(data (memory 1) (i32.const 10) "\00\01\02\03\04\05\06\07\08\09")
(func (export "load") (param $a i32) (result i32)
(i32.load8_u $mem1 (local.get 0))
)
)
(register "Mm" $Mm)
(module $Nm
(func $loadM (import "Mm" "load") (param i32) (result i32))
(memory (import "Mm" "mem0") 0)
(memory $m 1)
(data (memory 1) (i32.const 10) "\f0\f1\f2\f3\f4\f5")
(export "Mm.load" (func $loadM))
(func (export "load") (param $a i32) (result i32)
(i32.load8_u $m (local.get 0))
)
)
(assert_return (invoke $Mm "load" (i32.const 12)) (i32.const 2))
(assert_return (invoke $Nm "Mm.load" (i32.const 12)) (i32.const 2))
(assert_return (invoke $Nm "load" (i32.const 12)) (i32.const 0xf2))
(module $Om
(memory (import "Mm" "mem1") 1)
(data (i32.const 5) "\a0\a1\a2\a3\a4\a5\a6\a7")
(func (export "load") (param $a i32) (result i32)
(i32.load8_u (local.get 0))
)
)
(assert_return (invoke $Mm "load" (i32.const 12)) (i32.const 0xa7))
(assert_return (invoke $Nm "Mm.load" (i32.const 12)) (i32.const 0xa7))
(assert_return (invoke $Nm "load" (i32.const 12)) (i32.const 0xf2))
(assert_return (invoke $Om "load" (i32.const 12)) (i32.const 0xa7))
(module
(memory (import "Mm" "mem1") 0)
(data (i32.const 0xffff) "a")
)
(assert_trap
(module
(memory (import "Mm" "mem0") 0)
(data (i32.const 0xffff) "a")
)
"out of bounds memory access"
)
(assert_trap
(module
(memory (import "Mm" "mem1") 0)
(data (i32.const 0x10000) "a")
)
"out of bounds memory access"
)