summaryrefslogtreecommitdiff
path: root/test/spec/memory64/memory64.txt
diff options
context:
space:
mode:
authorKeith Winstein <keithw@cs.stanford.edu>2023-06-12 12:37:13 -0700
committerGitHub <noreply@github.com>2023-06-12 19:37:13 +0000
commit5edb24126ed5183d35b317478fc5a7f8ca831ac9 (patch)
tree2aa2afeb559a575bdc2b83760a51d809b6907895 /test/spec/memory64/memory64.txt
parent4247346029a7c4697df884590c6385561e772b97 (diff)
downloadwabt-5edb24126ed5183d35b317478fc5a7f8ca831ac9.tar.gz
wabt-5edb24126ed5183d35b317478fc5a7f8ca831ac9.tar.bz2
wabt-5edb24126ed5183d35b317478fc5a7f8ca831ac9.zip
memory64: when enabled, check offset range at validation-time (#2253)
* memory64: when enabled, offset range check is at validation-time Before memory64, the "offset" in a load/store expression was a u32, and we enforced this in the WastParser and BinaryReader. After memory64, the "offset" becomes a u64 syntactically, and the validator checks that it's <= UINT32_MAX for i32 memories. We hadn't been correctly allowing these very large offsets in the text format (even when memory64 was enabled and the memory was i64). (This change also eliminates the "memories" member in the BinaryReader. The BinaryReader no longer needs to keep track of the memories and their types to check well-formedness.)
Diffstat (limited to 'test/spec/memory64/memory64.txt')
-rw-r--r--test/spec/memory64/memory64.txt16
1 files changed, 12 insertions, 4 deletions
diff --git a/test/spec/memory64/memory64.txt b/test/spec/memory64/memory64.txt
index b3fa5c9d..daad2004 100644
--- a/test/spec/memory64/memory64.txt
+++ b/test/spec/memory64/memory64.txt
@@ -18,13 +18,21 @@ out/test/spec/memory64/memory64.wast:20: assert_invalid passed:
out/test/spec/memory64/memory64/memory64.11.wasm:000000c: error: memory variable out of range: 0 (max 0)
000000c: error: BeginDataSegment callback failed
out/test/spec/memory64/memory64.wast:23: assert_invalid passed:
- 000001b: error: load/store memory 0 out of range 0
+ out/test/spec/memory64/memory64/memory64.12.wasm:000001c: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.12.wasm:000001c: error: type mismatch in f32.load, expected [i32] but got [i64]
+ 000001c: error: OnLoadExpr callback failed
out/test/spec/memory64/memory64.wast:27: assert_invalid passed:
- 0000020: error: load/store memory 0 out of range 0
+ out/test/spec/memory64/memory64/memory64.13.wasm:0000021: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.13.wasm:0000021: error: type mismatch in f32.store, expected [i32, f32] but got [i64, f32]
+ 0000021: error: OnStoreExpr callback failed
out/test/spec/memory64/memory64.wast:31: assert_invalid passed:
- 000001b: error: load/store memory 0 out of range 0
+ out/test/spec/memory64/memory64/memory64.14.wasm:000001c: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.14.wasm:000001c: error: type mismatch in i32.load8_s, expected [i32] but got [i64]
+ 000001c: error: OnLoadExpr callback failed
out/test/spec/memory64/memory64.wast:35: assert_invalid passed:
- 000001d: error: load/store memory 0 out of range 0
+ out/test/spec/memory64/memory64/memory64.15.wasm:000001e: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.15.wasm:000001e: error: type mismatch in i32.store8, expected [i32, i32] but got [i64, i32]
+ 000001e: error: OnStoreExpr callback failed
out/test/spec/memory64/memory64.wast:39: assert_invalid passed:
out/test/spec/memory64/memory64/memory64.16.wasm:0000019: error: memory variable out of range: 0 (max 0)
0000019: error: OnMemorySizeExpr callback failed