1;;! memory64 = true
2;;! bulk_memory = true
3
4(assert_unlinkable
5  (module
6    (memory i64 1)
7    (data (i64.const 0xffff_ffff_ffff) "x"))
8  "out of bounds memory access")
9
10(module
11  (memory i64 1)
12
13  (func (export "copy") (param i64 i64 i64)
14      local.get 0
15      local.get 1
16      local.get 2
17      memory.copy)
18
19  (func (export "fill") (param i64 i32 i64)
20      local.get 0
21      local.get 1
22      local.get 2
23      memory.fill)
24
25  (func (export "init") (param i64 i32 i32)
26      local.get 0
27      local.get 1
28      local.get 2
29      memory.init 0)
30
31  (data "1234")
32)
33
34(invoke "copy" (i64.const 0) (i64.const 0) (i64.const 100))
35(assert_trap
36  (invoke "copy" (i64.const 0x1_0000_0000) (i64.const 0) (i64.const 0))
37  "out of bounds memory access")
38(assert_trap
39  (invoke "copy" (i64.const 0) (i64.const 0x1_0000_0000) (i64.const 0))
40  "out of bounds memory access")
41(assert_trap
42  (invoke "copy" (i64.const 0) (i64.const 0) (i64.const 0x1_0000_0000))
43  "out of bounds memory access")
44
45(invoke "fill" (i64.const 0) (i32.const 0) (i64.const 100))
46(assert_trap
47  (invoke "fill" (i64.const 0x1_0000_0000) (i32.const 0) (i64.const 0))
48  "out of bounds memory access")
49(assert_trap
50  (invoke "fill" (i64.const 0) (i32.const 0) (i64.const 0x1_0000_0000))
51  "out of bounds memory access")
52
53(invoke "init" (i64.const 0) (i32.const 0) (i32.const 0))
54(invoke "init" (i64.const 0) (i32.const 0) (i32.const 4))
55(assert_trap
56  (invoke "fill" (i64.const 0x1_0000_0000) (i32.const 0) (i64.const 0))
57  "out of bounds memory access")
58