Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions test/core/memory_trap.wast
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
(assert_return (invoke "store" (i32.const -4) (i32.const 42)))
(assert_return (invoke "load" (i32.const -4)) (i32.const 42))
(assert_trap (invoke "store" (i32.const -3) (i32.const 0x12345678)) "out of bounds memory access")
;; check that the oob store above does not store partial data.
(assert_return (invoke "load" (i32.const -4)) (i32.const 42))
(assert_trap (invoke "load" (i32.const -3)) "out of bounds memory access")
(assert_trap (invoke "store" (i32.const -2) (i32.const 13)) "out of bounds memory access")
(assert_trap (invoke "load" (i32.const -2)) "out of bounds memory access")
Expand Down Expand Up @@ -270,3 +268,15 @@
;; No memory was changed
(assert_return (invoke "i64.load" (i32.const 0xfff8)) (i64.const 0x6867666564636261))
(assert_return (invoke "i64.load" (i32.const 0)) (i64.const 0x6867666564636261))

;; Check that out of bounds store do not store partial data.
;; Zero last 8 bytes.
(assert_return (invoke "i64.store" (i32.const 0xfff8) (i64.const 0)))
(assert_trap (invoke "i32.store" (i32.const 0xfffd) (i32.const 0x12345678)) "out of bounds memory access")
(assert_return (invoke "i32.load" (i32.const 0xfffc)) (i32.const 0))
(assert_trap (invoke "i64.store" (i32.const 0xfff9) (i64.const 0x1234567890abcdef)) "out of bounds memory access")
(assert_return (invoke "i64.load" (i32.const 0xfff8)) (i64.const 0))
(assert_trap (invoke "f32.store" (i32.const 0xfffd) (f32.const 0x12345678)) "out of bounds memory access")
(assert_return (invoke "f32.load" (i32.const 0xfffc)) (f32.const 0))
(assert_trap (invoke "f64.store" (i32.const 0xfff9) (f64.const 0x1234567890abcdef)) "out of bounds memory access")
(assert_return (invoke "f64.load" (i32.const 0xfff8)) (f64.const 0))