summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Winstein <208955+keithw@users.noreply.github.com>2024-10-30 20:00:59 -0700
committerGitHub <noreply@github.com>2024-10-30 20:00:59 -0700
commit6a5cbb94fad9b375469d6433429521988b1de20b (patch)
tree847c7b09e581bdeb5de8ed1fb014cd643b7b1d0e
parent9a7cf04d0fb9d4fbf0d943b7a7c5a761c014eb09 (diff)
downloadwabt-6a5cbb94fad9b375469d6433429521988b1de20b.tar.gz
wabt-6a5cbb94fad9b375469d6433429521988b1de20b.tar.bz2
wabt-6a5cbb94fad9b375469d6433429521988b1de20b.zip
Update testsuite (#2495)
The memory64 `table.wast` test has started to depend on function-references and gc (which WABT doesn't support yet), so vendor an older version of the test.
-rw-r--r--src/binary-reader.cc3
-rw-r--r--src/error-formatter.cc5
-rw-r--r--src/interp/interp.cc8
-rw-r--r--src/shared-validator.cc13
-rw-r--r--test/regress/data-count-without-data-section.txt14
-rw-r--r--test/spec/align.txt15
-rw-r--r--test/spec/binary.txt122
-rw-r--r--test/spec/call_indirect.txt21
-rw-r--r--test/spec/exception-handling/binary.txt122
-rw-r--r--test/spec/exception-handling/imports.txt130
-rw-r--r--test/spec/float_exprs.txt2
-rw-r--r--test/spec/float_misc.txt2
-rw-r--r--test/spec/imports.txt130
-rw-r--r--test/spec/memory.txt2
-rw-r--r--test/spec/memory64/binary.txt268
-rw-r--r--test/spec/memory64/binary0.txt10
-rw-r--r--test/spec/memory64/call_indirect.txt1
-rw-r--r--test/spec/memory64/imports.txt340
-rw-r--r--test/spec/memory64/memory.txt98
-rw-r--r--test/spec/memory64/memory64.txt58
-rw-r--r--test/spec/memory64/table.txt101
-rw-r--r--test/spec/memory64/table_copy_mixed.txt15
-rw-r--r--test/spec/memory64/table_grow.txt30
-rw-r--r--test/spec/memory_grow.txt30
-rw-r--r--test/spec/multi-memory/align.txt311
-rw-r--r--test/spec/multi-memory/binary.txt122
-rw-r--r--test/spec/multi-memory/imports.txt124
-rw-r--r--test/spec/multi-memory/memory.txt2
-rw-r--r--test/spec/multi-memory/memory_grow.txt38
-rw-r--r--test/spec/relaxed-simd/relaxed_madd_nmadd.txt2
-rw-r--r--test/spec/table_grow.txt30
-rw-r--r--test/spec/tail-call/return_call_indirect.txt1
-rw-r--r--test/typecheck/bad-returncallindirect-no-table.txt3
-rw-r--r--test/wasm2c/spec/exception-handling/imports.txt2
-rw-r--r--test/wasm2c/spec/float_exprs.txt2
-rw-r--r--test/wasm2c/spec/float_misc.txt2
-rw-r--r--test/wasm2c/spec/imports.txt2
-rw-r--r--test/wasm2c/spec/memory.txt2
-rw-r--r--test/wasm2c/spec/memory64/binary0.txt6
-rw-r--r--test/wasm2c/spec/memory64/imports.txt19
-rw-r--r--test/wasm2c/spec/memory64/memory.txt2
-rw-r--r--test/wasm2c/spec/memory64/table.txt78
-rw-r--r--test/wasm2c/spec/memory64/table_copy_mixed.txt6
-rw-r--r--test/wasm2c/spec/memory64/table_grow.txt2
-rw-r--r--test/wasm2c/spec/memory_grow.txt2
-rw-r--r--test/wasm2c/spec/multi-memory/align.txt6
-rw-r--r--test/wasm2c/spec/multi-memory/imports.txt2
-rw-r--r--test/wasm2c/spec/multi-memory/memory.txt2
-rw-r--r--test/wasm2c/spec/multi-memory/memory_grow.txt2
-rw-r--r--test/wasm2c/spec/table_grow.txt2
m---------third_party/testsuite0
51 files changed, 1635 insertions, 677 deletions
diff --git a/src/binary-reader.cc b/src/binary-reader.cc
index a0b31787..33801a7d 100644
--- a/src/binary-reader.cc
+++ b/src/binary-reader.cc
@@ -3044,7 +3044,8 @@ Result BinaryReader::ReadModule(const ReadModuleOptions& options) {
"function signature count != function body count");
// This is checked in ReadDataSection, but it must be checked at the end too,
// in case the data section was omitted.
- ERROR_IF(num_data_segments_ == 0 && data_count_ != kInvalidIndex,
+ ERROR_IF(num_data_segments_ == 0 && data_count_ != kInvalidIndex &&
+ data_count_ != 0,
"Data section missing but DataCount non-zero");
CALLBACK0(EndModule);
diff --git a/src/error-formatter.cc b/src/error-formatter.cc
index 9a14cfac..13b2bfd1 100644
--- a/src/error-formatter.cc
+++ b/src/error-formatter.cc
@@ -62,7 +62,10 @@ std::string FormatError(const Error& error,
result += '\n';
result += indent_str;
- size_t num_spaces = (loc.first_column - 1) - source_line.column_offset;
+ size_t num_spaces = 0;
+ if (loc.first_column > source_line.column_offset) {
+ num_spaces = (loc.first_column - 1) - source_line.column_offset;
+ }
size_t num_carets = loc.last_column - loc.first_column;
num_carets = std::min(num_carets, source_line.line.size() - num_spaces);
num_carets = std::max<size_t>(num_carets, 1);
diff --git a/src/interp/interp.cc b/src/interp/interp.cc
index 97f35f81..a3dd9b4a 100644
--- a/src/interp/interp.cc
+++ b/src/interp/interp.cc
@@ -78,6 +78,14 @@ Result Match(const Limits& expected,
}
}
+ if (expected.is_64 && !actual.is_64) {
+ *out_msg = StringPrintf("expected i64 memory, but i32 memory provided");
+ return Result::Error;
+ } else if (actual.is_64 && !expected.is_64) {
+ *out_msg = StringPrintf("expected i32 memory, but i64 memory provided");
+ return Result::Error;
+ }
+
return Result::Ok;
}
diff --git a/src/shared-validator.cc b/src/shared-validator.cc
index f9c26807..914b5346 100644
--- a/src/shared-validator.cc
+++ b/src/shared-validator.cc
@@ -712,6 +712,11 @@ Result SharedValidator::OnCallIndirect(const Location& loc,
TableType table_type;
result |= CheckFuncTypeIndex(sig_var, &func_type);
result |= CheckTableIndex(table_var, &table_type);
+ if (table_type.element != Type::FuncRef) {
+ result |= PrintError(
+ loc,
+ "type mismatch: call_indirect must reference table of funcref type");
+ }
result |= typechecker_.OnCallIndirect(func_type.params, func_type.results,
table_type.limits);
return result;
@@ -1028,9 +1033,15 @@ Result SharedValidator::OnReturnCallIndirect(const Location& loc,
Var sig_var,
Var table_var) {
Result result = CheckInstr(Opcode::CallIndirect, loc);
- result |= CheckTableIndex(table_var);
FuncType func_type;
+ TableType table_type;
result |= CheckFuncTypeIndex(sig_var, &func_type);
+ result |= CheckTableIndex(table_var, &table_type);
+ if (table_type.element != Type::FuncRef) {
+ result |= PrintError(loc,
+ "type mismatch: return_call_indirect must reference "
+ "table of funcref type");
+ }
result |=
typechecker_.OnReturnCallIndirect(func_type.params, func_type.results);
return result;
diff --git a/test/regress/data-count-without-data-section.txt b/test/regress/data-count-without-data-section.txt
deleted file mode 100644
index 8fa1ed69..00000000
--- a/test/regress/data-count-without-data-section.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-;;; TOOL: run-interp-spec
-(assert_malformed
- (module binary
- "\00asm" "\01\00\00\00"
- "\05\03\01\00\01" ;; Memory section with one entry
- "\0c\01\01" ;; Data count section with value 1
- )
- "data count and data section have inconsistent lengths"
-)
-(;; STDOUT ;;;
-out/test/regress/data-count-without-data-section.txt:3: assert_malformed passed:
- 0000010: error: Data section missing but DataCount non-zero
-1/1 tests passed.
-;;; STDOUT ;;)
diff --git a/test/spec/align.txt b/test/spec/align.txt
index 447bdede..5fcd16c7 100644
--- a/test/spec/align.txt
+++ b/test/spec/align.txt
@@ -297,5 +297,18 @@ out/test/spec/align.wast:452: assert_invalid passed:
out/test/spec/align/align.105.wasm:000002a: error: alignment must not be larger than natural alignment (8)
000002a: error: OnStoreExpr callback failed
out/test/spec/align.wast:864: assert_trap passed: out of bounds memory access: access at 65532+8 >= max value 65536
-156/156 tests passed.
+out/test/spec/align.wast:873: assert_invalid passed:
+ out/test/spec/align/align.108.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/align.wast:892: assert_malformed passed:
+ 0000020: error: invalid load alignment: 32
+out/test/spec/align.wast:911: assert_malformed passed:
+ 0000020: error: invalid load alignment: 33
+out/test/spec/align.wast:930: assert_malformed passed:
+ 0000020: error: invalid load alignment: 63
+out/test/spec/align.wast:949: assert_malformed passed:
+ 0000020: error: multi_memory not allowed
+out/test/spec/align.wast:968: assert_malformed passed:
+ 0000020: error: multi_memory not allowed
+162/162 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/binary.txt b/test/spec/binary.txt
index 3ad2c15a..fd20a651 100644
--- a/test/spec/binary.txt
+++ b/test/spec/binary.txt
@@ -113,79 +113,125 @@ out/test/spec/binary.wast:431: assert_malformed passed:
0000015: error: function signature count != function body count
out/test/spec/binary.wast:454: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/binary.wast:464: assert_malformed passed:
+out/test/spec/binary.wast:466: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/binary.wast:474: assert_malformed passed:
+out/test/spec/binary.wast:478: assert_malformed passed:
+ 0000010: error: Data section missing but DataCount non-zero
+out/test/spec/binary.wast:494: assert_malformed passed:
0000024: error: memory.init requires data count section
-out/test/spec/binary.wast:496: assert_malformed passed:
+out/test/spec/binary.wast:517: assert_malformed passed:
000001e: error: data.drop requires data count section
-out/test/spec/binary.wast:515: assert_malformed passed:
+out/test/spec/binary.wast:537: assert_malformed passed:
0000024: error: unexpected opcode: 0xf3
-out/test/spec/binary.wast:541: assert_malformed passed:
+out/test/spec/binary.wast:565: assert_malformed passed:
0000022: error: table elem type must be a reference type
-out/test/spec/binary.wast:622: assert_malformed passed:
+out/test/spec/binary.wast:650: assert_malformed passed:
000000a: error: invalid section size: extends past end
-out/test/spec/binary.wast:633: assert_malformed passed:
+out/test/spec/binary.wast:661: assert_malformed passed:
000000e: error: unfinished section (expected end: 0x11)
-out/test/spec/binary.wast:652: assert_malformed passed:
+out/test/spec/binary.wast:680: assert_malformed passed:
000000e: error: invalid import tag kind: exceptions not allowed
-out/test/spec/binary.wast:662: assert_malformed passed:
+out/test/spec/binary.wast:690: assert_malformed passed:
000000e: error: invalid import tag kind: exceptions not allowed
-out/test/spec/binary.wast:673: assert_malformed passed:
+out/test/spec/binary.wast:701: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/binary.wast:683: assert_malformed passed:
+out/test/spec/binary.wast:711: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/binary.wast:694: assert_malformed passed:
+out/test/spec/binary.wast:722: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/binary.wast:704: assert_malformed passed:
+out/test/spec/binary.wast:732: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/binary.wast:717: assert_malformed passed:
+out/test/spec/binary.wast:745: assert_malformed passed:
0000027: error: unable to read u32 leb128: string length
-out/test/spec/binary.wast:736: assert_malformed passed:
+out/test/spec/binary.wast:764: assert_malformed passed:
000002b: error: unfinished section (expected end: 0x40)
-out/test/spec/binary.wast:767: assert_malformed passed:
+out/test/spec/binary.wast:795: assert_malformed passed:
000000b: error: invalid table count 1, only 0 bytes left in section
-out/test/spec/binary.wast:777: assert_malformed passed:
+out/test/spec/binary.wast:805: assert_malformed passed:
000000d: error: tables may not be shared
-out/test/spec/binary.wast:786: assert_malformed passed:
+out/test/spec/binary.wast:814: assert_malformed passed:
000000d: error: tables may not be shared
-out/test/spec/binary.wast:796: assert_malformed passed:
+out/test/spec/binary.wast:824: assert_malformed passed:
000000d: error: malformed table limits flag: 129
-out/test/spec/binary.wast:814: assert_malformed passed:
+out/test/spec/binary.wast:842: assert_malformed passed:
000000b: error: invalid memory count 1, only 0 bytes left in section
-out/test/spec/binary.wast:824: assert_malformed passed:
+out/test/spec/binary.wast:852: assert_malformed passed:
000000c: error: memory may not be shared: threads not allowed
-out/test/spec/binary.wast:832: assert_malformed passed:
+out/test/spec/binary.wast:860: assert_malformed passed:
000000c: error: memory may not be shared: threads not allowed
-out/test/spec/binary.wast:841: assert_malformed passed:
+out/test/spec/binary.wast:869: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/binary.wast:850: assert_malformed passed:
+out/test/spec/binary.wast:878: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/binary.wast:867: assert_malformed passed:
+out/test/spec/binary.wast:895: assert_malformed passed:
0000010: error: unable to read i32 leb128: global type
-out/test/spec/binary.wast:878: assert_malformed passed:
+out/test/spec/binary.wast:906: assert_malformed passed:
0000010: error: unfinished section (expected end: 0x15)
-out/test/spec/binary.wast:901: assert_malformed passed:
+out/test/spec/binary.wast:929: assert_malformed passed:
000001b: error: unable to read u32 leb128: string length
-out/test/spec/binary.wast:922: assert_malformed passed:
+out/test/spec/binary.wast:950: assert_malformed passed:
000001b: error: unfinished section (expected end: 0x20)
-out/test/spec/binary.wast:956: assert_malformed passed:
+out/test/spec/binary.wast:984: assert_malformed passed:
0000021: error: unable to read u32 leb128: elem segment flags
-out/test/spec/binary.wast:972: assert_malformed passed:
+out/test/spec/binary.wast:1000: assert_malformed passed:
0000024: error: init expression must end with END opcode
-out/test/spec/binary.wast:989: assert_malformed passed:
+out/test/spec/binary.wast:1017: assert_malformed passed:
0000021: error: unfinished section (expected end: 0x27)
-out/test/spec/binary.wast:1015: assert_malformed passed:
+out/test/spec/binary.wast:1043: assert_malformed passed:
0000016: error: unable to read u32 leb128: data segment flags
-out/test/spec/binary.wast:1028: assert_malformed passed:
+out/test/spec/binary.wast:1056: assert_malformed passed:
0000016: error: unfinished section (expected end: 0x1c)
-out/test/spec/binary.wast:1041: assert_malformed passed:
+out/test/spec/binary.wast:1069: assert_malformed passed:
0000015: error: unable to read data: data segment data
-out/test/spec/binary.wast:1055: assert_malformed passed:
+out/test/spec/binary.wast:1083: assert_malformed passed:
000001a: error: unfinished section (expected end: 0x1b)
-out/test/spec/binary.wast:1086: assert_malformed passed:
+out/test/spec/binary.wast:1114: assert_malformed passed:
0000048: error: function body must end with END opcode
-out/test/spec/binary.wast:1133: assert_malformed passed:
+out/test/spec/binary.wast:1161: assert_malformed passed:
0000017: error: multiple Start sections
-112/112 tests passed.
+out/test/spec/binary.wast:1178: assert_malformed passed:
+ 0000014: error: multiple Function sections
+out/test/spec/binary.wast:1190: assert_malformed passed:
+ 0000016: error: function signature count != function body count
+out/test/spec/binary.wast:1202: assert_malformed passed:
+ 000000d: error: multiple DataCount sections
+out/test/spec/binary.wast:1212: assert_malformed passed:
+ 000000d: error: multiple Data sections
+out/test/spec/binary.wast:1222: assert_malformed passed:
+ 000000d: error: multiple Global sections
+out/test/spec/binary.wast:1232: assert_malformed passed:
+ 000000d: error: multiple Export sections
+out/test/spec/binary.wast:1242: assert_malformed passed:
+ 000000d: error: multiple Table sections
+out/test/spec/binary.wast:1252: assert_malformed passed:
+ 000000d: error: multiple Elem sections
+out/test/spec/binary.wast:1262: assert_malformed passed:
+ 000000d: error: multiple Import sections
+out/test/spec/binary.wast:1272: assert_malformed passed:
+ 000000d: error: multiple Type sections
+out/test/spec/binary.wast:1282: assert_malformed passed:
+ 000000d: error: multiple Memory sections
+out/test/spec/binary.wast:1292: assert_malformed passed:
+ 000000d: error: section Type out of order
+out/test/spec/binary.wast:1302: assert_malformed passed:
+ 000000d: error: section Import out of order
+out/test/spec/binary.wast:1312: assert_malformed passed:
+ 000000d: error: section Function out of order
+out/test/spec/binary.wast:1322: assert_malformed passed:
+ 000000d: error: section Table out of order
+out/test/spec/binary.wast:1332: assert_malformed passed:
+ 000000d: error: section Memory out of order
+out/test/spec/binary.wast:1342: assert_malformed passed:
+ 000000d: error: section Global out of order
+out/test/spec/binary.wast:1352: assert_malformed passed:
+ 0000011: error: section Export out of order
+out/test/spec/binary.wast:1363: assert_malformed passed:
+ 0000011: error: section Start out of order
+out/test/spec/binary.wast:1374: assert_malformed passed:
+ 000000d: error: section Elem out of order
+out/test/spec/binary.wast:1384: assert_malformed passed:
+ 000000d: error: section DataCount out of order
+out/test/spec/binary.wast:1394: assert_malformed passed:
+ 000000d: error: section Code out of order
+136/136 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/call_indirect.txt b/test/spec/call_indirect.txt
index a950b15e..b4b2d55f 100644
--- a/test/spec/call_indirect.txt
+++ b/test/spec/call_indirect.txt
@@ -86,6 +86,7 @@ out/test/spec/call_indirect.wast:776: assert_malformed passed:
^^^^^^^^^^^^^
out/test/spec/call_indirect.wast:791: assert_invalid passed:
out/test/spec/call_indirect/call_indirect.13.wasm:000001c: error: table variable out of range: 0 (max 0)
+ out/test/spec/call_indirect/call_indirect.13.wasm:000001c: error: type mismatch: call_indirect must reference table of funcref type
000001c: error: OnCallIndirectExpr callback failed
out/test/spec/call_indirect.wast:799: assert_invalid passed:
out/test/spec/call_indirect/call_indirect.14.wasm:0000023: error: type mismatch in i32.eqz, expected [i32] but got []
@@ -141,14 +142,20 @@ out/test/spec/call_indirect.wast:961: assert_invalid passed:
out/test/spec/call_indirect.wast:977: assert_invalid passed:
out/test/spec/call_indirect/call_indirect.31.wasm:000003d: error: type mismatch in call_indirect, expected [i32, i32] but got [i32]
000003d: error: OnCallIndirectExpr callback failed
-out/test/spec/call_indirect.wast:997: assert_invalid passed:
- out/test/spec/call_indirect/call_indirect.32.wasm:0000022: error: function type variable out of range: 1 (max 1)
+out/test/spec/call_indirect.wast:995: assert_invalid passed:
+ out/test/spec/call_indirect/call_indirect.32.wasm:0000022: error: type mismatch: call_indirect must reference table of funcref type
0000022: error: OnCallIndirectExpr callback failed
-out/test/spec/call_indirect.wast:1004: assert_invalid passed:
- out/test/spec/call_indirect/call_indirect.33.wasm:0000026: error: function type variable out of range: 1012321300 (max 1)
+out/test/spec/call_indirect.wast:1006: assert_invalid passed:
+ out/test/spec/call_indirect/call_indirect.33.wasm:0000022: error: function type variable out of range: 1 (max 1)
+ 0000022: error: OnCallIndirectExpr callback failed
+out/test/spec/call_indirect.wast:1013: assert_invalid passed:
+ out/test/spec/call_indirect/call_indirect.34.wasm:0000026: error: function type variable out of range: 1012321300 (max 1)
0000026: error: OnCallIndirectExpr callback failed
-out/test/spec/call_indirect.wast:1015: assert_invalid passed:
- out/test/spec/call_indirect/call_indirect.34.wasm:0000018: error: function variable out of range: 0 (max 0)
+out/test/spec/call_indirect.wast:1022: assert_invalid passed:
+ out/test/spec/call_indirect/call_indirect.35.wasm:000002e: error: function type variable out of range: 4294967295 (max 2)
+ 000002e: error: OnCallIndirectExpr callback failed
+out/test/spec/call_indirect.wast:1038: assert_invalid passed:
+ out/test/spec/call_indirect/call_indirect.36.wasm:0000018: error: function variable out of range: 0 (max 0)
0000018: error: OnRefFuncExpr callback failed
-170/170 tests passed.
+172/172 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/exception-handling/binary.txt b/test/spec/exception-handling/binary.txt
index 3ac56eb7..8d253cf7 100644
--- a/test/spec/exception-handling/binary.txt
+++ b/test/spec/exception-handling/binary.txt
@@ -114,79 +114,125 @@ out/test/spec/exception-handling/binary.wast:431: assert_malformed passed:
0000015: error: function signature count != function body count
out/test/spec/exception-handling/binary.wast:454: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/exception-handling/binary.wast:464: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:466: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/exception-handling/binary.wast:474: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:478: assert_malformed passed:
+ 0000010: error: Data section missing but DataCount non-zero
+out/test/spec/exception-handling/binary.wast:494: assert_malformed passed:
0000024: error: memory.init requires data count section
-out/test/spec/exception-handling/binary.wast:496: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:517: assert_malformed passed:
000001e: error: data.drop requires data count section
-out/test/spec/exception-handling/binary.wast:515: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:537: assert_malformed passed:
0000024: error: unexpected opcode: 0xf3
-out/test/spec/exception-handling/binary.wast:541: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:565: assert_malformed passed:
0000022: error: table elem type must be a reference type
-out/test/spec/exception-handling/binary.wast:622: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:650: assert_malformed passed:
000000a: error: invalid section size: extends past end
-out/test/spec/exception-handling/binary.wast:633: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:661: assert_malformed passed:
000000e: error: unfinished section (expected end: 0x11)
-out/test/spec/exception-handling/binary.wast:652: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:680: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/exception-handling/binary.wast:662: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:690: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/exception-handling/binary.wast:673: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:701: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/exception-handling/binary.wast:683: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:711: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/exception-handling/binary.wast:694: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:722: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/exception-handling/binary.wast:704: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:732: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/exception-handling/binary.wast:717: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:745: assert_malformed passed:
0000027: error: unable to read u32 leb128: string length
-out/test/spec/exception-handling/binary.wast:736: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:764: assert_malformed passed:
000002b: error: unfinished section (expected end: 0x40)
-out/test/spec/exception-handling/binary.wast:767: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:795: assert_malformed passed:
000000b: error: invalid table count 1, only 0 bytes left in section
-out/test/spec/exception-handling/binary.wast:777: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:805: assert_malformed passed:
000000d: error: tables may not be shared
-out/test/spec/exception-handling/binary.wast:786: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:814: assert_malformed passed:
000000d: error: tables may not be shared
-out/test/spec/exception-handling/binary.wast:796: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:824: assert_malformed passed:
000000d: error: malformed table limits flag: 129
-out/test/spec/exception-handling/binary.wast:814: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:842: assert_malformed passed:
000000b: error: invalid memory count 1, only 0 bytes left in section
-out/test/spec/exception-handling/binary.wast:824: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:852: assert_malformed passed:
000000c: error: memory may not be shared: threads not allowed
-out/test/spec/exception-handling/binary.wast:832: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:860: assert_malformed passed:
000000c: error: memory may not be shared: threads not allowed
-out/test/spec/exception-handling/binary.wast:841: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:869: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/exception-handling/binary.wast:850: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:878: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/exception-handling/binary.wast:867: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:895: assert_malformed passed:
0000010: error: unable to read i32 leb128: global type
-out/test/spec/exception-handling/binary.wast:878: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:906: assert_malformed passed:
0000010: error: unfinished section (expected end: 0x15)
-out/test/spec/exception-handling/binary.wast:901: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:929: assert_malformed passed:
000001b: error: unable to read u32 leb128: string length
-out/test/spec/exception-handling/binary.wast:922: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:950: assert_malformed passed:
000001b: error: unfinished section (expected end: 0x20)
-out/test/spec/exception-handling/binary.wast:956: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:984: assert_malformed passed:
0000021: error: unable to read u32 leb128: elem segment flags
-out/test/spec/exception-handling/binary.wast:972: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1000: assert_malformed passed:
0000024: error: init expression must end with END opcode
-out/test/spec/exception-handling/binary.wast:989: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1017: assert_malformed passed:
0000021: error: unfinished section (expected end: 0x27)
-out/test/spec/exception-handling/binary.wast:1015: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1043: assert_malformed passed:
0000016: error: unable to read u32 leb128: data segment flags
-out/test/spec/exception-handling/binary.wast:1028: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1056: assert_malformed passed:
0000016: error: unfinished section (expected end: 0x1c)
-out/test/spec/exception-handling/binary.wast:1041: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1069: assert_malformed passed:
0000015: error: unable to read data: data segment data
-out/test/spec/exception-handling/binary.wast:1055: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1083: assert_malformed passed:
000001a: error: unfinished section (expected end: 0x1b)
-out/test/spec/exception-handling/binary.wast:1086: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1114: assert_malformed passed:
0000048: error: function body must end with END opcode
-out/test/spec/exception-handling/binary.wast:1133: assert_malformed passed:
+out/test/spec/exception-handling/binary.wast:1161: assert_malformed passed:
0000017: error: multiple Start sections
-112/112 tests passed.
+out/test/spec/exception-handling/binary.wast:1178: assert_malformed passed:
+ 0000014: error: multiple Function sections
+out/test/spec/exception-handling/binary.wast:1190: assert_malformed passed:
+ 0000016: error: function signature count != function body count
+out/test/spec/exception-handling/binary.wast:1202: assert_malformed passed:
+ 000000d: error: multiple DataCount sections
+out/test/spec/exception-handling/binary.wast:1212: assert_malformed passed:
+ 000000d: error: multiple Data sections
+out/test/spec/exception-handling/binary.wast:1222: assert_malformed passed:
+ 000000d: error: multiple Global sections
+out/test/spec/exception-handling/binary.wast:1232: assert_malformed passed:
+ 000000d: error: multiple Export sections
+out/test/spec/exception-handling/binary.wast:1242: assert_malformed passed:
+ 000000d: error: multiple Table sections
+out/test/spec/exception-handling/binary.wast:1252: assert_malformed passed:
+ 000000d: error: multiple Elem sections
+out/test/spec/exception-handling/binary.wast:1262: assert_malformed passed:
+ 000000d: error: multiple Import sections
+out/test/spec/exception-handling/binary.wast:1272: assert_malformed passed:
+ 000000d: error: multiple Type sections
+out/test/spec/exception-handling/binary.wast:1282: assert_malformed passed:
+ 000000d: error: multiple Memory sections
+out/test/spec/exception-handling/binary.wast:1292: assert_malformed passed:
+ 000000d: error: section Type out of order
+out/test/spec/exception-handling/binary.wast:1302: assert_malformed passed:
+ 000000d: error: section Import out of order
+out/test/spec/exception-handling/binary.wast:1312: assert_malformed passed:
+ 000000d: error: section Function out of order
+out/test/spec/exception-handling/binary.wast:1322: assert_malformed passed:
+ 000000d: error: section Table out of order
+out/test/spec/exception-handling/binary.wast:1332: assert_malformed passed:
+ 000000d: error: section Memory out of order
+out/test/spec/exception-handling/binary.wast:1342: assert_malformed passed:
+ 000000d: error: section Global out of order
+out/test/spec/exception-handling/binary.wast:1352: assert_malformed passed:
+ 0000011: error: section Export out of order
+out/test/spec/exception-handling/binary.wast:1363: assert_malformed passed:
+ 0000011: error: section Start out of order
+out/test/spec/exception-handling/binary.wast:1374: assert_malformed passed:
+ 000000d: error: section Elem out of order
+out/test/spec/exception-handling/binary.wast:1384: assert_malformed passed:
+ 000000d: error: section DataCount out of order
+out/test/spec/exception-handling/binary.wast:1394: assert_malformed passed:
+ 000000d: error: section Code out of order
+136/136 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/exception-handling/imports.txt b/test/spec/exception-handling/imports.txt
index c1d69108..09396e8a 100644
--- a/test/spec/exception-handling/imports.txt
+++ b/test/spec/exception-handling/imports.txt
@@ -124,134 +124,134 @@ out/test/spec/exception-handling/imports.wast:392: assert_trap passed: undefined
out/test/spec/exception-handling/imports.wast:407: assert_trap passed: uninitialized table element
out/test/spec/exception-handling/imports.wast:410: assert_trap passed: uninitialized table element
out/test/spec/exception-handling/imports.wast:411: assert_trap passed: undefined table index
-out/test/spec/exception-handling/imports.wast:443: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:442: assert_unlinkable passed:
error: invalid import "test.unknown"
-out/test/spec/exception-handling/imports.wast:447: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:446: assert_unlinkable passed:
error: invalid import "spectest.unknown"
-out/test/spec/exception-handling/imports.wast:452: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:451: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/exception-handling/imports.wast:456: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:455: assert_unlinkable passed:
error: max size (unspecified) larger than declared (20)
-out/test/spec/exception-handling/imports.wast:460: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:459: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/exception-handling/imports.wast:464: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:463: assert_unlinkable passed:
error: max size (20) larger than declared (18)
-out/test/spec/exception-handling/imports.wast:468: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:467: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/exception-handling/imports.wast:472: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:471: assert_unlinkable passed:
error: max size (20) larger than declared (15)
-out/test/spec/exception-handling/imports.wast:477: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:476: assert_unlinkable passed:
error: expected import "test.func" to have kind table, not func
-out/test/spec/exception-handling/imports.wast:481: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:480: assert_unlinkable passed:
error: expected import "test.global-i32" to have kind table, not global
-out/test/spec/exception-handling/imports.wast:485: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:484: assert_unlinkable passed:
error: expected import "test.memory-2-inf" to have kind table, not memory
-out/test/spec/exception-handling/imports.wast:489: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:488: assert_unlinkable passed:
error: expected import "spectest.print_i32" to have kind table, not func
-out/test/spec/exception-handling/imports.wast:507: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
-out/test/spec/exception-handling/imports.wast:518: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
-out/test/spec/exception-handling/imports.wast:521: assert_invalid passed:
+out/test/spec/exception-handling/imports.wast:506: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/exception-handling/imports.wast:517: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/exception-handling/imports.wast:520: assert_invalid passed:
out/test/spec/exception-handling/imports/imports.103.wasm:0000015: error: only one memory block allowed
0000015: error: OnImportMemory callback failed
-out/test/spec/exception-handling/imports.wast:525: assert_invalid passed:
+out/test/spec/exception-handling/imports.wast:524: assert_invalid passed:
out/test/spec/exception-handling/imports/imports.104.wasm:0000015: error: only one memory block allowed
0000015: error: OnMemory callback failed
-out/test/spec/exception-handling/imports.wast:529: assert_invalid passed:
+out/test/spec/exception-handling/imports.wast:528: assert_invalid passed:
out/test/spec/exception-handling/imports/imports.105.wasm:000000f: error: only one memory block allowed
000000f: error: OnMemory callback failed
-out/test/spec/exception-handling/imports.wast:544: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:543: assert_unlinkable passed:
error: invalid import "test.unknown"
-out/test/spec/exception-handling/imports.wast:548: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:547: assert_unlinkable passed:
error: invalid import "spectest.unknown"
-out/test/spec/exception-handling/imports.wast:553: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:552: assert_unlinkable passed:
error: actual size (2) smaller than declared (3)
-out/test/spec/exception-handling/imports.wast:557: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:556: assert_unlinkable passed:
error: max size (unspecified) larger than declared (3)
-out/test/spec/exception-handling/imports.wast:561: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:560: assert_unlinkable passed:
error: actual size (1) smaller than declared (2)
-out/test/spec/exception-handling/imports.wast:565: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:564: assert_unlinkable passed:
error: max size (2) larger than declared (1)
-out/test/spec/exception-handling/imports.wast:570: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:569: assert_unlinkable passed:
error: expected import "test.func-i32" to have kind memory, not func
-out/test/spec/exception-handling/imports.wast:574: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:573: assert_unlinkable passed:
error: expected import "test.global-i32" to have kind memory, not global
-out/test/spec/exception-handling/imports.wast:578: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:577: assert_unlinkable passed:
error: expected import "test.table-10-inf" to have kind memory, not table
-out/test/spec/exception-handling/imports.wast:582: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:581: assert_unlinkable passed:
error: expected import "spectest.print_i32" to have kind memory, not func
-out/test/spec/exception-handling/imports.wast:586: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:585: assert_unlinkable passed:
error: expected import "spectest.global_i32" to have kind memory, not global
-out/test/spec/exception-handling/imports.wast:590: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:589: assert_unlinkable passed:
error: expected import "spectest.table" to have kind memory, not table
-out/test/spec/exception-handling/imports.wast:595: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:594: assert_unlinkable passed:
error: actual size (1) smaller than declared (2)
-out/test/spec/exception-handling/imports.wast:599: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:598: assert_unlinkable passed:
error: max size (2) larger than declared (1)
-out/test/spec/exception-handling/imports.wast:637: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.133.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:616: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.130.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (func))
^^^^^^
-out/test/spec/exception-handling/imports.wast:641: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.134.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:620: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.131.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (global i64))
^^^^^^
-out/test/spec/exception-handling/imports.wast:645: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.135.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:624: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.132.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/exception-handling/imports.wast:649: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.136.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:628: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.133.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (memory 0))
^^^^^^
-out/test/spec/exception-handling/imports.wast:654: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.137.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:633: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.134.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (func))
^^^^^^
-out/test/spec/exception-handling/imports.wast:658: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.138.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:637: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.135.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (global f32))
^^^^^^
-out/test/spec/exception-handling/imports.wast:662: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.139.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:641: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.136.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/exception-handling/imports.wast:666: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.140.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:645: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.137.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (memory 0))
^^^^^^
-out/test/spec/exception-handling/imports.wast:671: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.141.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:650: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.138.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (func))
^^^^^^
-out/test/spec/exception-handling/imports.wast:675: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.142.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:654: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.139.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (global i32))
^^^^^^
-out/test/spec/exception-handling/imports.wast:679: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.143.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:658: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.140.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/exception-handling/imports.wast:683: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.144.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:662: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.141.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (memory 0))
^^^^^^
-out/test/spec/exception-handling/imports.wast:688: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.145.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:667: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.142.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (func))
^^^^^^
-out/test/spec/exception-handling/imports.wast:692: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.146.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:671: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.143.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (global i32))
^^^^^^
-out/test/spec/exception-handling/imports.wast:696: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.147.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:675: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.144.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (table 1 3 funcref))
^^^^^^
-out/test/spec/exception-handling/imports.wast:700: assert_malformed passed:
- out/test/spec/exception-handling/imports/imports.148.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/exception-handling/imports.wast:679: assert_malformed passed:
+ out/test/spec/exception-handling/imports/imports.145.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (memory 1 2))
^^^^^^
-out/test/spec/exception-handling/imports.wast:710: assert_unlinkable passed:
+out/test/spec/exception-handling/imports.wast:689: assert_unlinkable passed:
error: invalid import "not wasm.overloaded"
-188/188 tests passed.
+182/182 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/float_exprs.txt b/test/spec/float_exprs.txt
index 54662d41..47d33ecf 100644
--- a/test/spec/float_exprs.txt
+++ b/test/spec/float_exprs.txt
@@ -11,5 +11,5 @@ init(i32:8, f64:15.200000) =>
init(i32:16, f64:15.300000) =>
init(i32:24, f64:15.400000) =>
run(i32:32, f64:3.000000) =>
-900/900 tests passed.
+927/927 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/float_misc.txt b/test/spec/float_misc.txt
index aa11bb90..1a781b57 100644
--- a/test/spec/float_misc.txt
+++ b/test/spec/float_misc.txt
@@ -1,5 +1,5 @@
;;; TOOL: run-interp-spec
;;; STDIN_FILE: third_party/testsuite/float_misc.wast
(;; STDOUT ;;;
-441/441 tests passed.
+471/471 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/imports.txt b/test/spec/imports.txt
index 16ca9d50..cce41734 100644
--- a/test/spec/imports.txt
+++ b/test/spec/imports.txt
@@ -111,134 +111,134 @@ out/test/spec/imports.wast:360: assert_trap passed: undefined table index
out/test/spec/imports.wast:375: assert_trap passed: uninitialized table element
out/test/spec/imports.wast:378: assert_trap passed: uninitialized table element
out/test/spec/imports.wast:379: assert_trap passed: undefined table index
-out/test/spec/imports.wast:411: assert_unlinkable passed:
+out/test/spec/imports.wast:410: assert_unlinkable passed:
error: invalid import "test.unknown"
-out/test/spec/imports.wast:415: assert_unlinkable passed:
+out/test/spec/imports.wast:414: assert_unlinkable passed:
error: invalid import "spectest.unknown"
-out/test/spec/imports.wast:420: assert_unlinkable passed:
+out/test/spec/imports.wast:419: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/imports.wast:424: assert_unlinkable passed:
+out/test/spec/imports.wast:423: assert_unlinkable passed:
error: max size (unspecified) larger than declared (20)
-out/test/spec/imports.wast:428: assert_unlinkable passed:
+out/test/spec/imports.wast:427: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/imports.wast:432: assert_unlinkable passed:
+out/test/spec/imports.wast:431: assert_unlinkable passed:
error: max size (20) larger than declared (18)
-out/test/spec/imports.wast:436: assert_unlinkable passed:
+out/test/spec/imports.wast:435: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/imports.wast:440: assert_unlinkable passed:
+out/test/spec/imports.wast:439: assert_unlinkable passed:
error: max size (20) larger than declared (15)
-out/test/spec/imports.wast:445: assert_unlinkable passed:
+out/test/spec/imports.wast:444: assert_unlinkable passed:
error: expected import "test.func" to have kind table, not func
-out/test/spec/imports.wast:449: assert_unlinkable passed:
+out/test/spec/imports.wast:448: assert_unlinkable passed:
error: expected import "test.global-i32" to have kind table, not global
-out/test/spec/imports.wast:453: assert_unlinkable passed:
+out/test/spec/imports.wast:452: assert_unlinkable passed:
error: expected import "test.memory-2-inf" to have kind table, not memory
-out/test/spec/imports.wast:457: assert_unlinkable passed:
+out/test/spec/imports.wast:456: assert_unlinkable passed:
error: expected import "spectest.print_i32" to have kind table, not func
-out/test/spec/imports.wast:475: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
-out/test/spec/imports.wast:486: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
-out/test/spec/imports.wast:489: assert_invalid passed:
+out/test/spec/imports.wast:474: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/imports.wast:485: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/imports.wast:488: assert_invalid passed:
out/test/spec/imports/imports.97.wasm:0000015: error: only one memory block allowed
0000015: error: OnImportMemory callback failed
-out/test/spec/imports.wast:493: assert_invalid passed:
+out/test/spec/imports.wast:492: assert_invalid passed:
out/test/spec/imports/imports.98.wasm:0000015: error: only one memory block allowed
0000015: error: OnMemory callback failed
-out/test/spec/imports.wast:497: assert_invalid passed:
+out/test/spec/imports.wast:496: assert_invalid passed:
out/test/spec/imports/imports.99.wasm:000000f: error: only one memory block allowed
000000f: error: OnMemory callback failed
-out/test/spec/imports.wast:512: assert_unlinkable passed:
+out/test/spec/imports.wast:511: assert_unlinkable passed:
error: invalid import "test.unknown"
-out/test/spec/imports.wast:516: assert_unlinkable passed:
+out/test/spec/imports.wast:515: assert_unlinkable passed:
error: invalid import "spectest.unknown"
-out/test/spec/imports.wast:521: assert_unlinkable passed:
+out/test/spec/imports.wast:520: assert_unlinkable passed:
error: actual size (2) smaller than declared (3)
-out/test/spec/imports.wast:525: assert_unlinkable passed:
+out/test/spec/imports.wast:524: assert_unlinkable passed:
error: max size (unspecified) larger than declared (3)
-out/test/spec/imports.wast:529: assert_unlinkable passed:
+out/test/spec/imports.wast:528: assert_unlinkable passed:
error: actual size (1) smaller than declared (2)
-out/test/spec/imports.wast:533: assert_unlinkable passed:
+out/test/spec/imports.wast:532: assert_unlinkable passed:
error: max size (2) larger than declared (1)
-out/test/spec/imports.wast:538: assert_unlinkable passed:
+out/test/spec/imports.wast:537: assert_unlinkable passed:
error: expected import "test.func-i32" to have kind memory, not func
-out/test/spec/imports.wast:542: assert_unlinkable passed:
+out/test/spec/imports.wast:541: assert_unlinkable passed:
error: expected import "test.global-i32" to have kind memory, not global
-out/test/spec/imports.wast:546: assert_unlinkable passed:
+out/test/spec/imports.wast:545: assert_unlinkable passed:
error: expected import "test.table-10-inf" to have kind memory, not table
-out/test/spec/imports.wast:550: assert_unlinkable passed:
+out/test/spec/imports.wast:549: assert_unlinkable passed:
error: expected import "spectest.print_i32" to have kind memory, not func
-out/test/spec/imports.wast:554: assert_unlinkable passed:
+out/test/spec/imports.wast:553: assert_unlinkable passed:
error: expected import "spectest.global_i32" to have kind memory, not global
-out/test/spec/imports.wast:558: assert_unlinkable passed:
+out/test/spec/imports.wast:557: assert_unlinkable passed:
error: expected import "spectest.table" to have kind memory, not table
-out/test/spec/imports.wast:563: assert_unlinkable passed:
+out/test/spec/imports.wast:562: assert_unlinkable passed:
error: actual size (1) smaller than declared (2)
-out/test/spec/imports.wast:567: assert_unlinkable passed:
+out/test/spec/imports.wast:566: assert_unlinkable passed:
error: max size (2) larger than declared (1)
-out/test/spec/imports.wast:605: assert_malformed passed:
- out/test/spec/imports/imports.127.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:584: assert_malformed passed:
+ out/test/spec/imports/imports.124.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (func))
^^^^^^
-out/test/spec/imports.wast:609: assert_malformed passed:
- out/test/spec/imports/imports.128.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:588: assert_malformed passed:
+ out/test/spec/imports/imports.125.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (global i64))
^^^^^^
-out/test/spec/imports.wast:613: assert_malformed passed:
- out/test/spec/imports/imports.129.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:592: assert_malformed passed:
+ out/test/spec/imports/imports.126.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/imports.wast:617: assert_malformed passed:
- out/test/spec/imports/imports.130.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:596: assert_malformed passed:
+ out/test/spec/imports/imports.127.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (memory 0))
^^^^^^
-out/test/spec/imports.wast:622: assert_malformed passed:
- out/test/spec/imports/imports.131.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:601: assert_malformed passed:
+ out/test/spec/imports/imports.128.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (func))
^^^^^^
-out/test/spec/imports.wast:626: assert_malformed passed:
- out/test/spec/imports/imports.132.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:605: assert_malformed passed:
+ out/test/spec/imports/imports.129.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (global f32))
^^^^^^
-out/test/spec/imports.wast:630: assert_malformed passed:
- out/test/spec/imports/imports.133.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:609: assert_malformed passed:
+ out/test/spec/imports/imports.130.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/imports.wast:634: assert_malformed passed:
- out/test/spec/imports/imports.134.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:613: assert_malformed passed:
+ out/test/spec/imports/imports.131.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (memory 0))
^^^^^^
-out/test/spec/imports.wast:639: assert_malformed passed:
- out/test/spec/imports/imports.135.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:618: assert_malformed passed:
+ out/test/spec/imports/imports.132.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (func))
^^^^^^
-out/test/spec/imports.wast:643: assert_malformed passed:
- out/test/spec/imports/imports.136.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:622: assert_malformed passed:
+ out/test/spec/imports/imports.133.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (global i32))
^^^^^^
-out/test/spec/imports.wast:647: assert_malformed passed:
- out/test/spec/imports/imports.137.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:626: assert_malformed passed:
+ out/test/spec/imports/imports.134.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/imports.wast:651: assert_malformed passed:
- out/test/spec/imports/imports.138.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:630: assert_malformed passed:
+ out/test/spec/imports/imports.135.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (memory 0))
^^^^^^
-out/test/spec/imports.wast:656: assert_malformed passed:
- out/test/spec/imports/imports.139.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:635: assert_malformed passed:
+ out/test/spec/imports/imports.136.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (func))
^^^^^^
-out/test/spec/imports.wast:660: assert_malformed passed:
- out/test/spec/imports/imports.140.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:639: assert_malformed passed:
+ out/test/spec/imports/imports.137.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (global i32))
^^^^^^
-out/test/spec/imports.wast:664: assert_malformed passed:
- out/test/spec/imports/imports.141.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:643: assert_malformed passed:
+ out/test/spec/imports/imports.138.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (table 1 3 funcref))
^^^^^^
-out/test/spec/imports.wast:668: assert_malformed passed:
- out/test/spec/imports/imports.142.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/imports.wast:647: assert_malformed passed:
+ out/test/spec/imports/imports.139.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (memory 1 2))
^^^^^^
-out/test/spec/imports.wast:678: assert_unlinkable passed:
+out/test/spec/imports.wast:657: assert_unlinkable passed:
error: invalid import "not wasm.overloaded"
-182/182 tests passed.
+176/176 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/memory.txt b/test/spec/memory.txt
index 0e607539..b6d4339f 100644
--- a/test/spec/memory.txt
+++ b/test/spec/memory.txt
@@ -82,5 +82,5 @@ out/test/spec/memory.wast:239: assert_malformed passed:
out/test/spec/memory/memory.33.wat:1:32: error: redefinition of memory "$foo"
(import "" "" (memory $foo 1))(import "" "" (memory $foo 1))
^^^^^^
-79/79 tests passed.
+88/88 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/memory64/binary.txt b/test/spec/memory64/binary.txt
index 66ac3ad9..28441993 100644
--- a/test/spec/memory64/binary.txt
+++ b/test/spec/memory64/binary.txt
@@ -59,7 +59,7 @@ out/test/spec/memory64/binary.wast:44: assert_malformed passed:
out/test/spec/memory64/binary.wast:45: assert_malformed passed:
0000008: error: bad wasm file version: 0x1000000 (expected 0x1)
out/test/spec/memory64/binary.wast:48: assert_malformed passed:
- 000000a: error: invalid section code: 13
+ 000000a: error: invalid section code: 14
out/test/spec/memory64/binary.wast:49: assert_malformed passed:
000000a: error: invalid section code: 127
out/test/spec/memory64/binary.wast:50: assert_malformed passed:
@@ -68,217 +68,151 @@ out/test/spec/memory64/binary.wast:51: assert_malformed passed:
000000a: error: invalid section code: 129
out/test/spec/memory64/binary.wast:52: assert_malformed passed:
000000a: error: invalid section code: 255
-out/test/spec/memory64/binary.wast:210: assert_malformed passed:
- 000000c: error: unexpected type form (got 0xe0)
-out/test/spec/memory64/binary.wast:223: assert_malformed passed:
- 000000c: error: unable to read u64 leb128: memory initial page count
-out/test/spec/memory64/binary.wast:233: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:243: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:254: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:264: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:276: assert_malformed passed:
- 000000c: error: unable to read u64 leb128: memory initial page count
-out/test/spec/memory64/binary.wast:284: assert_malformed passed:
- 000000c: error: unable to read u64 leb128: memory initial page count
-out/test/spec/memory64/binary.wast:294: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:304: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:314: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:324: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:335: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:345: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:355: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:365: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:376: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:386: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:396: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:406: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:418: assert_malformed passed:
+out/test/spec/memory64/binary.wast:56: assert_malformed passed:
000001b: error: function body must end with END opcode
-out/test/spec/memory64/binary.wast:439: assert_malformed passed:
+out/test/spec/memory64/binary.wast:77: assert_malformed passed:
000001a: error: function body must end with END opcode
-out/test/spec/memory64/binary.wast:455: assert_malformed passed:
+out/test/spec/memory64/binary.wast:93: assert_malformed passed:
000001a: error: function body must end with END opcode
-out/test/spec/memory64/binary.wast:475: assert_malformed passed:
- 000000c: error: unable to read u64 leb128: memory initial page count
-out/test/spec/memory64/binary.wast:483: assert_malformed passed:
- 0000022: error: unable to read u64 leb128: load offset
-out/test/spec/memory64/binary.wast:502: assert_malformed passed:
- 0000021: error: unable to read u32 leb128: load alignment
-out/test/spec/memory64/binary.wast:521: assert_malformed passed:
- 0000023: error: unable to read u32 leb128: store alignment
-out/test/spec/memory64/binary.wast:540: assert_malformed passed:
- 0000024: error: unable to read u64 leb128: store offset
-out/test/spec/memory64/binary.wast:561: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:571: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:582: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:592: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:604: assert_malformed passed:
- 000000c: error: unable to read u64 leb128: memory initial page count
-out/test/spec/memory64/binary.wast:612: assert_malformed passed:
- 000000c: error: unable to read u64 leb128: memory initial page count
-out/test/spec/memory64/binary.wast:620: assert_malformed passed:
- 0000022: error: unable to read u64 leb128: load offset
-out/test/spec/memory64/binary.wast:639: assert_malformed passed:
- 0000022: error: unable to read u64 leb128: load offset
-out/test/spec/memory64/binary.wast:658: assert_malformed passed:
- 0000021: error: unable to read u32 leb128: load alignment
-out/test/spec/memory64/binary.wast:676: assert_malformed passed:
- 0000021: error: unable to read u32 leb128: load alignment
-out/test/spec/memory64/binary.wast:695: assert_malformed passed:
- 0000023: error: unable to read u32 leb128: store alignment
-out/test/spec/memory64/binary.wast:714: assert_malformed passed:
- 0000023: error: unable to read u32 leb128: store alignment
-out/test/spec/memory64/binary.wast:733: assert_malformed passed:
- 0000024: error: unable to read u64 leb128: store offset
-out/test/spec/memory64/binary.wast:752: assert_malformed passed:
- 0000024: error: unable to read u64 leb128: store offset
-out/test/spec/memory64/binary.wast:774: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:784: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:794: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:804: assert_malformed passed:
- 000000e: error: unable to read i32 leb128: i32.const value
-out/test/spec/memory64/binary.wast:815: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:825: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:835: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:845: assert_malformed passed:
- 000000e: error: unable to read i64 leb128: i64.const value
-out/test/spec/memory64/binary.wast:857: assert_malformed passed:
- 0000020: error: memory.grow reserved value must be 0
-out/test/spec/memory64/binary.wast:877: assert_malformed passed:
- 0000020: error: memory.grow reserved value must be 0
-out/test/spec/memory64/binary.wast:897: assert_malformed passed:
- 0000020: error: memory.grow reserved value must be 0
-out/test/spec/memory64/binary.wast:916: assert_malformed passed:
- 0000020: error: memory.grow reserved value must be 0
-out/test/spec/memory64/binary.wast:935: assert_malformed passed:
- 0000020: error: memory.grow reserved value must be 0
-out/test/spec/memory64/binary.wast:955: assert_malformed passed:
- 000001e: error: memory.size reserved value must be 0
-out/test/spec/memory64/binary.wast:974: assert_malformed passed:
- 000001e: error: memory.size reserved value must be 0
-out/test/spec/memory64/binary.wast:993: assert_malformed passed:
- 000001e: error: memory.size reserved value must be 0
-out/test/spec/memory64/binary.wast:1011: assert_malformed passed:
- 000001e: error: memory.size reserved value must be 0
-out/test/spec/memory64/binary.wast:1029: assert_malformed passed:
- 000001e: error: memory.size reserved value must be 0
-out/test/spec/memory64/binary.wast:1048: assert_malformed passed:
+out/test/spec/memory64/binary.wast:113: assert_malformed passed:
+ 0000019: error: init expression must end with END opcode
+out/test/spec/memory64/binary.wast:126: assert_malformed passed:
0000017: error: unable to read u32 leb128: local type count
-out/test/spec/memory64/binary.wast:1065: assert_malformed passed:
+out/test/spec/memory64/binary.wast:143: assert_malformed passed:
0000017: error: unable to read u32 leb128: local type count
-out/test/spec/memory64/binary.wast:1082: assert_malformed passed:
+out/test/spec/memory64/binary.wast:160: assert_malformed passed:
000001e: error: local count must be <= 0xffffffff
-out/test/spec/memory64/binary.wast:1098: assert_malformed passed:
+out/test/spec/memory64/binary.wast:176: assert_malformed passed:
0000030: error: local count must be <= 0xffffffff
-out/test/spec/memory64/binary.wast:1132: assert_malformed passed:
+out/test/spec/memory64/binary.wast:210: assert_malformed passed:
0000013: error: function signature count != function body count
-out/test/spec/memory64/binary.wast:1142: assert_malformed passed:
+out/test/spec/memory64/binary.wast:220: assert_malformed passed:
000000b: error: function signature count != function body count
-out/test/spec/memory64/binary.wast:1151: assert_malformed passed:
+out/test/spec/memory64/binary.wast:229: assert_malformed passed:
0000016: error: function signature count != function body count
-out/test/spec/memory64/binary.wast:1162: assert_malformed passed:
+out/test/spec/memory64/binary.wast:240: assert_malformed passed:
0000015: error: function signature count != function body count
-out/test/spec/memory64/binary.wast:1185: assert_malformed passed:
+out/test/spec/memory64/binary.wast:263: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/memory64/binary.wast:1195: assert_malformed passed:
+out/test/spec/memory64/binary.wast:275: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/memory64/binary.wast:1205: assert_malformed passed:
+out/test/spec/memory64/binary.wast:287: assert_malformed passed:
+ 0000010: error: Data section missing but DataCount non-zero
+out/test/spec/memory64/binary.wast:303: assert_malformed passed:
0000024: error: memory.init requires data count section
-out/test/spec/memory64/binary.wast:1227: assert_malformed passed:
+out/test/spec/memory64/binary.wast:326: assert_malformed passed:
000001e: error: data.drop requires data count section
-out/test/spec/memory64/binary.wast:1246: assert_malformed passed:
+out/test/spec/memory64/binary.wast:346: assert_malformed passed:
0000024: error: unexpected opcode: 0xf3
-out/test/spec/memory64/binary.wast:1272: assert_malformed passed:
+out/test/spec/memory64/binary.wast:374: assert_malformed passed:
0000022: error: table elem type must be a reference type
-out/test/spec/memory64/binary.wast:1353: assert_malformed passed:
+out/test/spec/memory64/binary.wast:459: assert_malformed passed:
000000a: error: invalid section size: extends past end
-out/test/spec/memory64/binary.wast:1364: assert_malformed passed:
+out/test/spec/memory64/binary.wast:470: assert_malformed passed:
000000e: error: unfinished section (expected end: 0x11)
-out/test/spec/memory64/binary.wast:1383: assert_malformed passed:
- 000000e: error: invalid import tag kind: exceptions not allowed
-out/test/spec/memory64/binary.wast:1393: assert_malformed passed:
- 000000e: error: invalid import tag kind: exceptions not allowed
-out/test/spec/memory64/binary.wast:1404: assert_malformed passed:
+out/test/spec/memory64/binary.wast:489: assert_malformed passed:
+ 000000e: error: malformed import kind: 5
+out/test/spec/memory64/binary.wast:499: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/memory64/binary.wast:1414: assert_malformed passed:
+out/test/spec/memory64/binary.wast:510: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/memory64/binary.wast:1425: assert_malformed passed:
+out/test/spec/memory64/binary.wast:520: assert_malformed passed:
+ 000000e: error: malformed import kind: 5
+out/test/spec/memory64/binary.wast:531: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/memory64/binary.wast:1435: assert_malformed passed:
+out/test/spec/memory64/binary.wast:541: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/memory64/binary.wast:1448: assert_malformed passed:
+out/test/spec/memory64/binary.wast:554: assert_malformed passed:
0000027: error: unable to read u32 leb128: string length
-out/test/spec/memory64/binary.wast:1467: assert_malformed passed:
+out/test/spec/memory64/binary.wast:573: assert_malformed passed:
000002b: error: unfinished section (expected end: 0x40)
-out/test/spec/memory64/binary.wast:1498: assert_malformed passed:
+out/test/spec/memory64/binary.wast:604: assert_malformed passed:
000000b: error: invalid table count 1, only 0 bytes left in section
-out/test/spec/memory64/binary.wast:1508: assert_malformed passed:
+out/test/spec/memory64/binary.wast:614: assert_malformed passed:
000000d: error: malformed table limits flag: 8
-out/test/spec/memory64/binary.wast:1517: assert_malformed passed:
+out/test/spec/memory64/binary.wast:623: assert_malformed passed:
000000d: error: malformed table limits flag: 8
-out/test/spec/memory64/binary.wast:1527: assert_malformed passed:
+out/test/spec/memory64/binary.wast:633: assert_malformed passed:
000000d: error: malformed table limits flag: 129
-out/test/spec/memory64/binary.wast:1545: assert_malformed passed:
+out/test/spec/memory64/binary.wast:651: assert_malformed passed:
000000b: error: invalid memory count 1, only 0 bytes left in section
-out/test/spec/memory64/binary.wast:1555: assert_malformed passed:
+out/test/spec/memory64/binary.wast:661: assert_malformed passed:
000000c: error: malformed memory limits flag: 8
-out/test/spec/memory64/binary.wast:1563: assert_malformed passed:
+out/test/spec/memory64/binary.wast:669: assert_malformed passed:
000000c: error: malformed memory limits flag: 8
-out/test/spec/memory64/binary.wast:1572: assert_malformed passed:
+out/test/spec/memory64/binary.wast:678: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/memory64/binary.wast:1581: assert_malformed passed:
+out/test/spec/memory64/binary.wast:687: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/memory64/binary.wast:1598: assert_malformed passed:
+out/test/spec/memory64/binary.wast:704: assert_malformed passed:
0000010: error: unable to read i32 leb128: global type
-out/test/spec/memory64/binary.wast:1609: assert_malformed passed:
+out/test/spec/memory64/binary.wast:715: assert_malformed passed:
0000010: error: unfinished section (expected end: 0x15)
-out/test/spec/memory64/binary.wast:1632: assert_malformed passed:
+out/test/spec/memory64/binary.wast:738: assert_malformed passed:
000001b: error: unable to read u32 leb128: string length
-out/test/spec/memory64/binary.wast:1653: assert_malformed passed:
+out/test/spec/memory64/binary.wast:759: assert_malformed passed:
000001b: error: unfinished section (expected end: 0x20)
-out/test/spec/memory64/binary.wast:1687: assert_malformed passed:
+out/test/spec/memory64/binary.wast:793: assert_malformed passed:
0000021: error: unable to read u32 leb128: elem segment flags
-out/test/spec/memory64/binary.wast:1703: assert_malformed passed:
+out/test/spec/memory64/binary.wast:809: assert_malformed passed:
0000024: error: init expression must end with END opcode
-out/test/spec/memory64/binary.wast:1720: assert_malformed passed:
+out/test/spec/memory64/binary.wast:826: assert_malformed passed:
0000021: error: unfinished section (expected end: 0x27)
-out/test/spec/memory64/binary.wast:1746: assert_malformed passed:
+out/test/spec/memory64/binary.wast:852: assert_malformed passed:
0000016: error: unable to read u32 leb128: data segment flags
-out/test/spec/memory64/binary.wast:1759: assert_malformed passed:
+out/test/spec/memory64/binary.wast:865: assert_malformed passed:
0000016: error: unfinished section (expected end: 0x1c)
-out/test/spec/memory64/binary.wast:1772: assert_malformed passed:
+out/test/spec/memory64/binary.wast:878: assert_malformed passed:
0000015: error: unable to read data: data segment data
-out/test/spec/memory64/binary.wast:1786: assert_malformed passed:
+out/test/spec/memory64/binary.wast:892: assert_malformed passed:
000001a: error: unfinished section (expected end: 0x1b)
-out/test/spec/memory64/binary.wast:1817: assert_malformed passed:
+out/test/spec/memory64/binary.wast:923: assert_malformed passed:
0000048: error: function body must end with END opcode
-out/test/spec/memory64/binary.wast:1864: assert_malformed passed:
+out/test/spec/memory64/binary.wast:970: assert_malformed passed:
0000017: error: multiple Start sections
-177/177 tests passed.
+out/test/spec/memory64/binary.wast:987: assert_malformed passed:
+ 0000014: error: multiple Function sections
+out/test/spec/memory64/binary.wast:999: assert_malformed passed:
+ 0000016: error: function signature count != function body count
+out/test/spec/memory64/binary.wast:1011: assert_malformed passed:
+ 000000d: error: multiple DataCount sections
+out/test/spec/memory64/binary.wast:1021: assert_malformed passed:
+ 000000d: error: multiple Data sections
+out/test/spec/memory64/binary.wast:1031: assert_malformed passed:
+ 000000d: error: multiple Global sections
+out/test/spec/memory64/binary.wast:1041: assert_malformed passed:
+ 000000d: error: multiple Export sections
+out/test/spec/memory64/binary.wast:1051: assert_malformed passed:
+ 000000d: error: multiple Table sections
+out/test/spec/memory64/binary.wast:1061: assert_malformed passed:
+ 000000d: error: multiple Elem sections
+out/test/spec/memory64/binary.wast:1071: assert_malformed passed:
+ 000000d: error: multiple Import sections
+out/test/spec/memory64/binary.wast:1081: assert_malformed passed:
+ 000000d: error: multiple Type sections
+out/test/spec/memory64/binary.wast:1091: assert_malformed passed:
+ 000000d: error: multiple Memory sections
+out/test/spec/memory64/binary.wast:1101: assert_malformed passed:
+ 000000d: error: section Type out of order
+out/test/spec/memory64/binary.wast:1111: assert_malformed passed:
+ 000000d: error: section Import out of order
+out/test/spec/memory64/binary.wast:1121: assert_malformed passed:
+ 000000d: error: section Function out of order
+out/test/spec/memory64/binary.wast:1131: assert_malformed passed:
+ 000000d: error: section Table out of order
+out/test/spec/memory64/binary.wast:1141: assert_malformed passed:
+ 000000d: error: section Memory out of order
+out/test/spec/memory64/binary.wast:1151: assert_malformed passed:
+ 000000d: error: section Global out of order
+out/test/spec/memory64/binary.wast:1161: assert_malformed passed:
+ 0000011: error: section Export out of order
+out/test/spec/memory64/binary.wast:1172: assert_malformed passed:
+ 0000011: error: section Start out of order
+out/test/spec/memory64/binary.wast:1183: assert_malformed passed:
+ 000000d: error: section Elem out of order
+out/test/spec/memory64/binary.wast:1193: assert_malformed passed:
+ 000000d: error: section DataCount out of order
+out/test/spec/memory64/binary.wast:1203: assert_malformed passed:
+ 000000d: error: section Code out of order
+126/126 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/memory64/binary0.txt b/test/spec/memory64/binary0.txt
new file mode 100644
index 00000000..4a5f0647
--- /dev/null
+++ b/test/spec/memory64/binary0.txt
@@ -0,0 +1,10 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/memory64/binary0.wast
+;;; ARGS*: --enable-memory64 --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/memory64/binary0.wast:48: assert_malformed passed:
+ 000000e: error: unable to read u64 leb128: memory initial page count
+out/test/spec/memory64/binary0.wast:59: assert_malformed passed:
+ 000000d: error: unable to read uint8_t: memory flags
+7/7 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/memory64/call_indirect.txt b/test/spec/memory64/call_indirect.txt
index e40b4d49..1f1c5cc9 100644
--- a/test/spec/memory64/call_indirect.txt
+++ b/test/spec/memory64/call_indirect.txt
@@ -87,6 +87,7 @@ out/test/spec/memory64/call_indirect.wast:786: assert_malformed passed:
^^^^^^^^^^^^^
out/test/spec/memory64/call_indirect.wast:801: assert_invalid passed:
out/test/spec/memory64/call_indirect/call_indirect.13.wasm:000001c: error: table variable out of range: 0 (max 0)
+ out/test/spec/memory64/call_indirect/call_indirect.13.wasm:000001c: error: type mismatch: call_indirect must reference table of funcref type
000001c: error: OnCallIndirectExpr callback failed
out/test/spec/memory64/call_indirect.wast:809: assert_invalid passed:
out/test/spec/memory64/call_indirect/call_indirect.14.wasm:0000023: error: type mismatch in i32.eqz, expected [i32] but got []
diff --git a/test/spec/memory64/imports.txt b/test/spec/memory64/imports.txt
new file mode 100644
index 00000000..f62c98b4
--- /dev/null
+++ b/test/spec/memory64/imports.txt
@@ -0,0 +1,340 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/memory64/imports.wast
+;;; ARGS*: --enable-memory64 --enable-exceptions --enable-multi-memory
+(;; STDOUT ;;;
+called host spectest.print_i32(i32:13) =>
+called host spectest.print_i32_f32(i32:14, f32:42.000000) =>
+called host spectest.print_i32(i32:13) =>
+called host spectest.print_i32(i32:13) =>
+called host spectest.print_f32(f32:13.000000) =>
+called host spectest.print_i32(i32:13) =>
+called host spectest.print_i64(i64:24) =>
+called host spectest.print_f64_f64(f64:25.000000, f64:53.000000) =>
+called host spectest.print_i64(i64:24) =>
+called host spectest.print_f64(f64:24.000000) =>
+called host spectest.print_f64(f64:24.000000) =>
+called host spectest.print_f64(f64:24.000000) =>
+out/test/spec/memory64/imports.wast:99: assert_invalid passed:
+ out/test/spec/memory64/imports/imports.2.wasm:000001e: error: function type variable out of range: 1 (max 1)
+ 000001e: error: OnImportFunc callback failed
+called host spectest.print_i32(i32:13) =>
+out/test/spec/memory64/imports.wast:135: assert_unlinkable passed:
+ error: invalid import "test.unknown"
+out/test/spec/memory64/imports.wast:139: assert_unlinkable passed:
+ error: invalid import "spectest.unknown"
+out/test/spec/memory64/imports.wast:144: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:148: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:152: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:156: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:160: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:164: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:168: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:172: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:176: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:180: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:184: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:188: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:192: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:196: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:200: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:204: assert_unlinkable passed:
+ error: import signature mismatch
+out/test/spec/memory64/imports.wast:209: assert_unlinkable passed:
+ error: expected import "test.global-i32" to have kind func, not global
+out/test/spec/memory64/imports.wast:213: assert_unlinkable passed:
+ error: expected import "test.table-10-inf" to have kind func, not table
+out/test/spec/memory64/imports.wast:217: assert_unlinkable passed:
+ error: expected import "test.memory-2-inf" to have kind func, not memory
+out/test/spec/memory64/imports.wast:221: assert_unlinkable passed:
+ error: expected import "test.tag" to have kind func, not tag
+out/test/spec/memory64/imports.wast:225: assert_unlinkable passed:
+ error: expected import "spectest.global_i32" to have kind func, not global
+out/test/spec/memory64/imports.wast:229: assert_unlinkable passed:
+ error: expected import "spectest.table" to have kind func, not table
+out/test/spec/memory64/imports.wast:233: assert_unlinkable passed:
+ error: expected import "spectest.memory" to have kind func, not memory
+out/test/spec/memory64/imports.wast:238: assert_unlinkable passed:
+ error: invalid import "test.unknown"
+out/test/spec/memory64/imports.wast:242: assert_unlinkable passed:
+ error: signature mismatch in imported tag
+out/test/spec/memory64/imports.wast:246: assert_unlinkable passed:
+ error: signature mismatch in imported tag
+out/test/spec/memory64/imports.wast:250: assert_unlinkable passed:
+ error: signature mismatch in imported tag
+out/test/spec/memory64/imports.wast:254: assert_unlinkable passed:
+ error: expected import "test.func-i32" to have kind tag, not func
+out/test/spec/memory64/imports.wast:294: assert_unlinkable passed:
+ error: invalid import "test.unknown"
+out/test/spec/memory64/imports.wast:298: assert_unlinkable passed:
+ error: invalid import "spectest.unknown"
+out/test/spec/memory64/imports.wast:303: assert_unlinkable passed:
+ error: type mismatch in imported global, expected i64 but got i32.
+out/test/spec/memory64/imports.wast:307: assert_unlinkable passed:
+ error: type mismatch in imported global, expected f32 but got i32.
+out/test/spec/memory64/imports.wast:311: assert_unlinkable passed:
+ error: type mismatch in imported global, expected f64 but got i32.
+out/test/spec/memory64/imports.wast:315: assert_unlinkable passed:
+ error: mutability mismatch in imported global, expected immutable but got mutable.
+out/test/spec/memory64/imports.wast:319: assert_unlinkable passed:
+ error: type mismatch in imported global, expected i32 but got f32.
+out/test/spec/memory64/imports.wast:323: assert_unlinkable passed:
+ error: type mismatch in imported global, expected i64 but got f32.
+out/test/spec/memory64/imports.wast:327: assert_unlinkable passed:
+ error: type mismatch in imported global, expected f64 but got f32.
+out/test/spec/memory64/imports.wast:331: assert_unlinkable passed:
+ error: mutability mismatch in imported global, expected immutable but got mutable.
+out/test/spec/memory64/imports.wast:335: assert_unlinkable passed:
+ error: type mismatch in imported global, expected i32 but got i64.
+out/test/spec/memory64/imports.wast:339: assert_unlinkable passed:
+ error: type mismatch in imported global, expected f32 but got i64.
+out/test/spec/memory64/imports.wast:343: assert_unlinkable passed:
+ error: type mismatch in imported global, expected f64 but got i64.
+out/test/spec/memory64/imports.wast:347: assert_unlinkable passed:
+ error: mutability mismatch in imported global, expected mutable but got immutable.
+out/test/spec/memory64/imports.wast:352: assert_unlinkable passed:
+ error: expected import "test.func" to have kind global, not func
+out/test/spec/memory64/imports.wast:356: assert_unlinkable passed:
+ error: expected import "test.table-10-inf" to have kind global, not table
+out/test/spec/memory64/imports.wast:360: assert_unlinkable passed:
+ error: expected import "test.memory-2-inf" to have kind global, not memory
+out/test/spec/memory64/imports.wast:364: assert_unlinkable passed:
+ error: expected import "spectest.print_i32" to have kind global, not func
+out/test/spec/memory64/imports.wast:368: assert_unlinkable passed:
+ error: expected import "spectest.table" to have kind global, not table
+out/test/spec/memory64/imports.wast:372: assert_unlinkable passed:
+ error: expected import "spectest.memory" to have kind global, not memory
+out/test/spec/memory64/imports.wast:392: assert_trap passed: uninitialized table element
+out/test/spec/memory64/imports.wast:395: assert_trap passed: uninitialized table element
+out/test/spec/memory64/imports.wast:396: assert_trap passed: undefined table index
+out/test/spec/memory64/imports.wast:412: assert_trap passed: uninitialized table element
+out/test/spec/memory64/imports.wast:415: assert_trap passed: uninitialized table element
+out/test/spec/memory64/imports.wast:416: assert_trap passed: undefined table index
+out/test/spec/memory64/imports.wast:463: assert_unlinkable passed:
+ error: invalid import "test.unknown"
+out/test/spec/memory64/imports.wast:467: assert_unlinkable passed:
+ error: invalid import "spectest.unknown"
+out/test/spec/memory64/imports.wast:472: assert_unlinkable passed:
+ error: actual size (10) smaller than declared (12)
+out/test/spec/memory64/imports.wast:476: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (20)
+out/test/spec/memory64/imports.wast:480: assert_unlinkable passed:
+ error: actual size (10) smaller than declared (12)
+out/test/spec/memory64/imports.wast:484: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (20)
+out/test/spec/memory64/imports.wast:488: assert_unlinkable passed:
+ error: actual size (10) smaller than declared (12)
+out/test/spec/memory64/imports.wast:492: assert_unlinkable passed:
+ error: max size (20) larger than declared (18)
+out/test/spec/memory64/imports.wast:496: assert_unlinkable passed:
+ error: actual size (10) smaller than declared (12)
+out/test/spec/memory64/imports.wast:500: assert_unlinkable passed:
+ error: max size (20) larger than declared (18)
+out/test/spec/memory64/imports.wast:504: assert_unlinkable passed:
+ error: actual size (10) smaller than declared (12)
+out/test/spec/memory64/imports.wast:508: assert_unlinkable passed:
+ error: max size (20) larger than declared (15)
+out/test/spec/memory64/imports.wast:513: assert_unlinkable passed:
+ error: expected import "test.func" to have kind table, not func
+out/test/spec/memory64/imports.wast:517: assert_unlinkable passed:
+ error: expected import "test.global-i32" to have kind table, not global
+out/test/spec/memory64/imports.wast:521: assert_unlinkable passed:
+ error: expected import "test.memory-2-inf" to have kind table, not memory
+out/test/spec/memory64/imports.wast:525: assert_unlinkable passed:
+ error: expected import "spectest.print_i32" to have kind table, not func
+out/test/spec/memory64/imports.wast:530: assert_unlinkable passed:
+ error: expected i64 memory, but i32 memory provided
+out/test/spec/memory64/imports.wast:534: assert_unlinkable passed:
+ error: expected i32 memory, but i64 memory provided
+out/test/spec/memory64/imports.wast:538: assert_unlinkable passed:
+ error: expected i64 memory, but i32 memory provided
+out/test/spec/memory64/imports.wast:542: assert_unlinkable passed:
+ error: expected i32 memory, but i64 memory provided
+out/test/spec/memory64/imports.wast:561: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/memory64/imports.wast:574: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/memory64/imports.wast:607: assert_unlinkable passed:
+ error: invalid import "test.unknown"
+out/test/spec/memory64/imports.wast:611: assert_unlinkable passed:
+ error: invalid import "spectest.unknown"
+out/test/spec/memory64/imports.wast:616: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (1)
+out/test/spec/memory64/imports.wast:620: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (2)
+out/test/spec/memory64/imports.wast:624: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (3)
+out/test/spec/memory64/imports.wast:628: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (3)
+out/test/spec/memory64/imports.wast:632: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:636: assert_unlinkable passed:
+ error: max size (4) larger than declared (1)
+out/test/spec/memory64/imports.wast:640: assert_unlinkable passed:
+ error: max size (4) larger than declared (2)
+out/test/spec/memory64/imports.wast:644: assert_unlinkable passed:
+ error: max size (4) larger than declared (3)
+out/test/spec/memory64/imports.wast:648: assert_unlinkable passed:
+ error: max size (4) larger than declared (2)
+out/test/spec/memory64/imports.wast:652: assert_unlinkable passed:
+ error: max size (4) larger than declared (3)
+out/test/spec/memory64/imports.wast:656: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:660: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:664: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:668: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (4)
+out/test/spec/memory64/imports.wast:672: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (4)
+out/test/spec/memory64/imports.wast:676: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:680: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (4)
+out/test/spec/memory64/imports.wast:684: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (5)
+out/test/spec/memory64/imports.wast:688: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (1)
+out/test/spec/memory64/imports.wast:692: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (2)
+out/test/spec/memory64/imports.wast:696: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (3)
+out/test/spec/memory64/imports.wast:700: assert_unlinkable passed:
+ error: max size (unspecified) larger than declared (3)
+out/test/spec/memory64/imports.wast:704: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:708: assert_unlinkable passed:
+ error: max size (4) larger than declared (1)
+out/test/spec/memory64/imports.wast:712: assert_unlinkable passed:
+ error: max size (4) larger than declared (2)
+out/test/spec/memory64/imports.wast:716: assert_unlinkable passed:
+ error: max size (4) larger than declared (3)
+out/test/spec/memory64/imports.wast:720: assert_unlinkable passed:
+ error: max size (4) larger than declared (2)
+out/test/spec/memory64/imports.wast:724: assert_unlinkable passed:
+ error: max size (4) larger than declared (3)
+out/test/spec/memory64/imports.wast:728: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:732: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:736: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:740: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (4)
+out/test/spec/memory64/imports.wast:744: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (4)
+out/test/spec/memory64/imports.wast:748: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (3)
+out/test/spec/memory64/imports.wast:752: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (4)
+out/test/spec/memory64/imports.wast:756: assert_unlinkable passed:
+ error: actual size (2) smaller than declared (5)
+out/test/spec/memory64/imports.wast:760: assert_unlinkable passed:
+ error: actual size (1) smaller than declared (2)
+out/test/spec/memory64/imports.wast:764: assert_unlinkable passed:
+ error: max size (2) larger than declared (1)
+out/test/spec/memory64/imports.wast:769: assert_unlinkable passed:
+ error: expected i64 memory, but i32 memory provided
+out/test/spec/memory64/imports.wast:773: assert_unlinkable passed:
+ error: expected i32 memory, but i64 memory provided
+out/test/spec/memory64/imports.wast:777: assert_unlinkable passed:
+ error: expected i64 memory, but i32 memory provided
+out/test/spec/memory64/imports.wast:781: assert_unlinkable passed:
+ error: expected i32 memory, but i64 memory provided
+out/test/spec/memory64/imports.wast:786: assert_unlinkable passed:
+ error: expected import "test.func-i32" to have kind memory, not func
+out/test/spec/memory64/imports.wast:790: assert_unlinkable passed:
+ error: expected import "test.global-i32" to have kind memory, not global
+out/test/spec/memory64/imports.wast:794: assert_unlinkable passed:
+ error: expected import "test.table-10-inf" to have kind memory, not table
+out/test/spec/memory64/imports.wast:798: assert_unlinkable passed:
+ error: expected import "spectest.print_i32" to have kind memory, not func
+out/test/spec/memory64/imports.wast:802: assert_unlinkable passed:
+ error: expected import "spectest.global_i32" to have kind memory, not global
+out/test/spec/memory64/imports.wast:806: assert_unlinkable passed:
+ error: expected import "spectest.table" to have kind memory, not table
+out/test/spec/memory64/imports.wast:811: assert_unlinkable passed:
+ error: actual size (1) smaller than declared (2)
+out/test/spec/memory64/imports.wast:815: assert_unlinkable passed:
+ error: max size (2) larger than declared (1)
+out/test/spec/memory64/imports.wast:833: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.205.wat:1:9: error: imports must occur before all non-import definitions
+ (func) (import "" "" (func))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:837: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.206.wat:1:9: error: imports must occur before all non-import definitions
+ (func) (import "" "" (global i64))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:841: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.207.wat:1:9: error: imports must occur before all non-import definitions
+ (func) (import "" "" (table 0 funcref))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:845: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.208.wat:1:9: error: imports must occur before all non-import definitions
+ (func) (import "" "" (memory 0))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:850: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.209.wat:1:29: error: imports must occur before all non-import definitions
+ (global i64 (i64.const 0)) (import "" "" (func))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:854: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.210.wat:1:29: error: imports must occur before all non-import definitions
+ (global i64 (i64.const 0)) (import "" "" (global f32))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:858: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.211.wat:1:29: error: imports must occur before all non-import definitions
+ (global i64 (i64.const 0)) (import "" "" (table 0 funcref))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:862: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.212.wat:1:29: error: imports must occur before all non-import definitions
+ (global i64 (i64.const 0)) (import "" "" (memory 0))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:867: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.213.wat:1:20: error: imports must occur before all non-import definitions
+ (table 0 funcref) (import "" "" (func))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:871: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.214.wat:1:20: error: imports must occur before all non-import definitions
+ (table 0 funcref) (import "" "" (global i32))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:875: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.215.wat:1:20: error: imports must occur before all non-import definitions
+ (table 0 funcref) (import "" "" (table 0 funcref))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:879: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.216.wat:1:20: error: imports must occur before all non-import definitions
+ (table 0 funcref) (import "" "" (memory 0))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:884: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.217.wat:1:13: error: imports must occur before all non-import definitions
+ (memory 0) (import "" "" (func))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:888: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.218.wat:1:13: error: imports must occur before all non-import definitions
+ (memory 0) (import "" "" (global i32))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:892: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.219.wat:1:13: error: imports must occur before all non-import definitions
+ (memory 0) (import "" "" (table 1 3 funcref))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:896: assert_malformed passed:
+ out/test/spec/memory64/imports/imports.220.wat:1:13: error: imports must occur before all non-import definitions
+ (memory 0) (import "" "" (memory 1 2))
+ ^^^^^^
+out/test/spec/memory64/imports.wast:906: assert_unlinkable passed:
+ error: invalid import "not wasm.overloaded"
+257/257 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/memory64/memory.txt b/test/spec/memory64/memory.txt
index 373f2cd6..222920b4 100644
--- a/test/spec/memory64/memory.txt
+++ b/test/spec/memory64/memory.txt
@@ -2,86 +2,80 @@
;;; STDIN_FILE: third_party/testsuite/proposals/memory64/memory.wast
;;; ARGS*: --enable-memory64
(;; STDOUT ;;;
-out/test/spec/memory64/memory.wast:10: assert_invalid passed:
- out/test/spec/memory64/memory/memory.6.wasm:000000f: error: only one memory block allowed
- 000000f: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:11: assert_invalid passed:
- out/test/spec/memory64/memory/memory.7.wasm:0000023: error: only one memory block allowed
- 0000023: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:20: assert_invalid passed:
- out/test/spec/memory64/memory/memory.11.wasm:000000c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:17: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.9.wasm:000000c: error: memory variable out of range: 0 (max 0)
000000c: error: BeginDataSegment callback failed
-out/test/spec/memory64/memory.wast:21: assert_invalid passed:
- out/test/spec/memory64/memory/memory.12.wasm:000000c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:18: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.10.wasm:000000c: error: memory variable out of range: 0 (max 0)
000000c: error: BeginDataSegment callback failed
-out/test/spec/memory64/memory.wast:22: assert_invalid passed:
- out/test/spec/memory64/memory/memory.13.wasm:000000c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:19: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.11.wasm:000000c: error: memory variable out of range: 0 (max 0)
000000c: error: BeginDataSegment callback failed
-out/test/spec/memory64/memory.wast:25: assert_invalid passed:
- out/test/spec/memory64/memory/memory.14.wasm:000001c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:22: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.12.wasm:000001c: error: memory variable out of range: 0 (max 0)
000001c: error: OnLoadExpr callback failed
-out/test/spec/memory64/memory.wast:29: assert_invalid passed:
- out/test/spec/memory64/memory/memory.15.wasm:0000021: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:26: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.13.wasm:0000021: error: memory variable out of range: 0 (max 0)
0000021: error: OnStoreExpr callback failed
-out/test/spec/memory64/memory.wast:33: assert_invalid passed:
- out/test/spec/memory64/memory/memory.16.wasm:000001c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:30: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.14.wasm:000001c: error: memory variable out of range: 0 (max 0)
000001c: error: OnLoadExpr callback failed
-out/test/spec/memory64/memory.wast:37: assert_invalid passed:
- out/test/spec/memory64/memory/memory.17.wasm:000001e: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:34: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.15.wasm:000001e: error: memory variable out of range: 0 (max 0)
000001e: error: OnStoreExpr callback failed
-out/test/spec/memory64/memory.wast:41: assert_invalid passed:
- out/test/spec/memory64/memory/memory.18.wasm:0000019: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:38: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.16.wasm:0000019: error: memory variable out of range: 0 (max 0)
0000019: error: OnMemorySizeExpr callback failed
-out/test/spec/memory64/memory.wast:45: assert_invalid passed:
- out/test/spec/memory64/memory/memory.19.wasm:000001b: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory.wast:42: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.17.wasm:000001b: error: memory variable out of range: 0 (max 0)
000001b: error: OnMemoryGrowExpr callback failed
-out/test/spec/memory64/memory.wast:51: assert_invalid passed:
- out/test/spec/memory64/memory/memory.20.wasm:000000e: error: max pages (0) must be >= initial pages (1)
+out/test/spec/memory64/memory.wast:48: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.18.wasm:000000e: error: max pages (0) must be >= initial pages (1)
000000e: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:55: assert_invalid passed:
- out/test/spec/memory64/memory/memory.21.wasm:000000f: error: initial pages (65537) must be <= (65536)
+out/test/spec/memory64/memory.wast:52: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.19.wasm:000000f: error: initial pages (65537) must be <= (65536)
000000f: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:59: assert_invalid passed:
- out/test/spec/memory64/memory/memory.22.wasm:0000011: error: initial pages (2147483648) must be <= (65536)
+out/test/spec/memory64/memory.wast:56: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.20.wasm:0000011: error: initial pages (2147483648) must be <= (65536)
0000011: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:63: assert_invalid passed:
- out/test/spec/memory64/memory/memory.23.wasm:0000011: error: initial pages (4294967295) must be <= (65536)
+out/test/spec/memory64/memory.wast:60: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.21.wasm:0000011: error: initial pages (4294967295) must be <= (65536)
0000011: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:67: assert_invalid passed:
- out/test/spec/memory64/memory/memory.24.wasm:0000010: error: max pages (65537) must be <= (65536)
+out/test/spec/memory64/memory.wast:64: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.22.wasm:0000010: error: max pages (65537) must be <= (65536)
0000010: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:71: assert_invalid passed:
- out/test/spec/memory64/memory/memory.25.wasm:0000012: error: max pages (2147483648) must be <= (65536)
+out/test/spec/memory64/memory.wast:68: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.23.wasm:0000012: error: max pages (2147483648) must be <= (65536)
0000012: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:75: assert_invalid passed:
- out/test/spec/memory64/memory/memory.26.wasm:0000012: error: max pages (4294967295) must be <= (65536)
+out/test/spec/memory64/memory.wast:72: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.24.wasm:0000012: error: max pages (4294967295) must be <= (65536)
0000012: error: OnMemory callback failed
-out/test/spec/memory64/memory.wast:80: assert_invalid passed:
- out/test/spec/memory64/memory/memory.27.wat:1:9: error: invalid int "0x1_0000_0000"
+out/test/spec/memory64/memory.wast:77: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.25.wat:1:9: error: invalid int "0x1_0000_0000"
(memory 0x1_0000_0000)
^^^^^^^^^^^^^
-out/test/spec/memory64/memory.wast:84: assert_invalid passed:
- out/test/spec/memory64/memory/memory.28.wat:1:9: error: invalid int "0x1_0000_0000"
+out/test/spec/memory64/memory.wast:81: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.26.wat:1:9: error: invalid int "0x1_0000_0000"
(memory 0x1_0000_0000 0x1_0000_0000)
^^^^^^^^^^^^^
- out/test/spec/memory64/memory/memory.28.wat:1:23: error: invalid int "0x1_0000_0000"
+ out/test/spec/memory64/memory/memory.26.wat:1:23: error: invalid int "0x1_0000_0000"
(memory 0x1_0000_0000 0x1_0000_0000)
^^^^^^^^^^^^^
-out/test/spec/memory64/memory.wast:88: assert_invalid passed:
- out/test/spec/memory64/memory/memory.29.wat:1:11: error: invalid int "0x1_0000_0000"
+out/test/spec/memory64/memory.wast:85: assert_invalid passed:
+ out/test/spec/memory64/memory/memory.27.wat:1:11: error: invalid int "0x1_0000_0000"
(memory 0 0x1_0000_0000)
^^^^^^^^^^^^^
-out/test/spec/memory64/memory.wast:231: assert_malformed passed:
- out/test/spec/memory64/memory/memory.31.wat:1:17: error: redefinition of memory "$foo"
+out/test/spec/memory64/memory.wast:228: assert_malformed passed:
+ out/test/spec/memory64/memory/memory.29.wat:1:17: error: redefinition of memory "$foo"
(memory $foo 1)(memory $foo 1)
^^^^^^
-out/test/spec/memory64/memory.wast:235: assert_malformed passed:
- out/test/spec/memory64/memory/memory.32.wat:1:32: error: redefinition of memory "$foo"
+out/test/spec/memory64/memory.wast:232: assert_malformed passed:
+ out/test/spec/memory64/memory/memory.30.wat:1:32: error: redefinition of memory "$foo"
(import "" "" (memory $foo 1))(memory $foo 1)
^^^^^^
-out/test/spec/memory64/memory.wast:239: assert_malformed passed:
- out/test/spec/memory64/memory/memory.33.wat:1:32: error: redefinition of memory "$foo"
+out/test/spec/memory64/memory.wast:236: assert_malformed passed:
+ out/test/spec/memory64/memory/memory.31.wat:1:32: error: redefinition of memory "$foo"
(import "" "" (memory $foo 1))(import "" "" (memory $foo 1))
^^^^^^
-79/79 tests passed.
+86/86 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/memory64/memory64.txt b/test/spec/memory64/memory64.txt
index a79ac162..f83ca265 100644
--- a/test/spec/memory64/memory64.txt
+++ b/test/spec/memory64/memory64.txt
@@ -2,46 +2,40 @@
;;; STDIN_FILE: third_party/testsuite/proposals/memory64/memory64.wast
;;; ARGS*: --enable-memory64
(;; STDOUT ;;;
-out/test/spec/memory64/memory64.wast:9: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.4.wasm:000000f: error: only one memory block allowed
- 000000f: error: OnMemory callback failed
-out/test/spec/memory64/memory64.wast:10: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.5.wasm:0000023: error: only one memory block allowed
- 0000023: error: OnMemory callback failed
-out/test/spec/memory64/memory64.wast:19: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.9.wasm:000000c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory64.wast:16: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.7.wasm:000000c: error: memory variable out of range: 0 (max 0)
000000c: error: BeginDataSegment callback failed
-out/test/spec/memory64/memory64.wast:20: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.10.wasm:000000c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory64.wast:17: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.8.wasm:000000c: error: memory variable out of range: 0 (max 0)
000000c: error: BeginDataSegment callback failed
-out/test/spec/memory64/memory64.wast:21: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.11.wasm:000000c: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory64.wast:18: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.9.wasm:000000c: error: memory variable out of range: 0 (max 0)
000000c: error: BeginDataSegment callback failed
-out/test/spec/memory64/memory64.wast:24: assert_invalid passed:
- 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]
+out/test/spec/memory64/memory64.wast:21: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.10.wasm:000001c: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.10.wasm:000001c: error: type mismatch in f32.load, expected [i32] but got [i64]
000001c: error: OnLoadExpr callback failed
-out/test/spec/memory64/memory64.wast:28: assert_invalid passed:
- 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]
+out/test/spec/memory64/memory64.wast:25: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.11.wasm:0000021: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.11.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:32: assert_invalid passed:
- 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]
+out/test/spec/memory64/memory64.wast:29: assert_invalid passed:
+ 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 i32.load8_s, expected [i32] but got [i64]
000001c: error: OnLoadExpr callback failed
-out/test/spec/memory64/memory64.wast:36: assert_invalid passed:
- 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]
+out/test/spec/memory64/memory64.wast:33: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.13.wasm:000001e: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.13.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:40: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.16.wasm:0000019: error: memory variable out of range: 0 (max 0)
+out/test/spec/memory64/memory64.wast:37: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.14.wasm:0000019: error: memory variable out of range: 0 (max 0)
0000019: error: OnMemorySizeExpr callback failed
-out/test/spec/memory64/memory64.wast:44: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.17.wasm:000001b: error: memory variable out of range: 0 (max 0)
- out/test/spec/memory64/memory64/memory64.17.wasm:000001b: error: type mismatch in memory.grow, expected [i32] but got [i64]
+out/test/spec/memory64/memory64.wast:41: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.15.wasm:000001b: error: memory variable out of range: 0 (max 0)
+ out/test/spec/memory64/memory64/memory64.15.wasm:000001b: error: type mismatch in memory.grow, expected [i32] but got [i64]
000001b: error: OnMemoryGrowExpr callback failed
-out/test/spec/memory64/memory64.wast:50: assert_invalid passed:
- out/test/spec/memory64/memory64/memory64.18.wasm:000000e: error: max pages (0) must be >= initial pages (1)
+out/test/spec/memory64/memory64.wast:47: assert_invalid passed:
+ out/test/spec/memory64/memory64/memory64.16.wasm:000000e: error: max pages (0) must be >= initial pages (1)
000000e: error: OnMemory callback failed
-65/65 tests passed.
+63/63 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/memory64/table.txt b/test/spec/memory64/table.txt
index b68289c0..1fb95959 100644
--- a/test/spec/memory64/table.txt
+++ b/test/spec/memory64/table.txt
@@ -1,49 +1,124 @@
;;; TOOL: run-interp-spec
-;;; STDIN_FILE: third_party/testsuite/proposals/memory64/table.wast
;;; ARGS*: --enable-memory64
+;; memory64 table.wast from last commit before wasm-3.0 merge
+
+(module (table 0 funcref))
+(module (table 1 funcref))
+(module (table 0 0 funcref))
+(module (table 0 1 funcref))
+(module (table 1 256 funcref))
+(module (table 0 65536 funcref))
+(module (table 0 0xffff_ffff funcref))
+
+(module (table 0 funcref) (table 0 funcref))
+(module (table (import "spectest" "table") 0 funcref) (table 0 funcref))
+
+(assert_invalid
+ (module (table 1 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+(assert_invalid
+ (module (table 0xffff_ffff 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+
+(assert_invalid
+ (module quote "(table 0x1_0000_0000 funcref)")
+ "table size must be at most 2^32-1"
+)
+(assert_invalid
+ (module quote "(table 0x1_0000_0000 0x1_0000_0000 funcref)")
+ "table size must be at most 2^32-1"
+)
+(assert_invalid
+ (module quote "(table 0 0x1_0000_0000 funcref)")
+ "table size must be at most 2^32-1"
+)
+
+;; Same as above but with i64 index types
+
+(module (table i64 0 funcref))
+(module (table i64 1 funcref))
+(module (table i64 0 0 funcref))
+(module (table i64 0 1 funcref))
+(module (table i64 1 256 funcref))
+(module (table i64 0 65536 funcref))
+(module (table i64 0 0xffff_ffff funcref))
+
+(module (table i64 0 funcref) (table i64 0 funcref))
+(module (table (import "spectest" "table64") i64 0 funcref) (table i64 0 funcref))
+
+(assert_invalid
+ (module (table i64 1 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+(assert_invalid
+ (module (table i64 0xffff_ffff 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+
+;; Elem segments with no table
+
+(assert_invalid (module (elem (i32.const 0))) "unknown table")
+(assert_invalid (module (elem (i32.const 0) $f) (func $f)) "unknown table")
+
+;; Duplicate table identifiers
+
+(assert_malformed (module quote
+ "(table $foo 1 funcref)"
+ "(table $foo 1 funcref)")
+ "duplicate table")
+(assert_malformed (module quote
+ "(import \"\" \"\" (table $foo 1 funcref))"
+ "(table $foo 1 funcref)")
+ "duplicate table")
+(assert_malformed (module quote
+ "(import \"\" \"\" (table $foo 1 funcref))"
+ "(import \"\" \"\" (table $foo 1 funcref))")
+ "duplicate table")
(;; STDOUT ;;;
-out/test/spec/memory64/table.wast:15: assert_invalid passed:
+out/test/spec/memory64/table.txt:17: assert_invalid passed:
out/test/spec/memory64/table/table.9.wasm:000000f: error: max elems (0) must be >= initial elems (1)
000000f: error: OnTable callback failed
-out/test/spec/memory64/table.wast:19: assert_invalid passed:
+out/test/spec/memory64/table.txt:21: assert_invalid passed:
out/test/spec/memory64/table/table.10.wasm:0000013: error: max elems (0) must be >= initial elems (4294967295)
0000013: error: OnTable callback failed
-out/test/spec/memory64/table.wast:24: assert_invalid passed:
+out/test/spec/memory64/table.txt:26: assert_invalid passed:
out/test/spec/memory64/table/table.11.wat:1:8: error: invalid int "0x1_0000_0000"
(table 0x1_0000_0000 funcref)
^^^^^^^^^^^^^
-out/test/spec/memory64/table.wast:28: assert_invalid passed:
+out/test/spec/memory64/table.txt:30: assert_invalid passed:
out/test/spec/memory64/table/table.12.wat:1:8: error: invalid int "0x1_0000_0000"
(table 0x1_0000_0000 0x1_0000_0000 funcref)
^^^^^^^^^^^^^
out/test/spec/memory64/table/table.12.wat:1:22: error: invalid int "0x1_0000_0000"
(table 0x1_0000_0000 0x1_0000_0000 funcref)
^^^^^^^^^^^^^
-out/test/spec/memory64/table.wast:32: assert_invalid passed:
+out/test/spec/memory64/table.txt:34: assert_invalid passed:
out/test/spec/memory64/table/table.13.wat:1:10: error: invalid int "0x1_0000_0000"
(table 0 0x1_0000_0000 funcref)
^^^^^^^^^^^^^
-out/test/spec/memory64/table.wast:50: assert_invalid passed:
+out/test/spec/memory64/table.txt:52: assert_invalid passed:
out/test/spec/memory64/table/table.23.wasm:000000f: error: max elems (0) must be >= initial elems (1)
000000f: error: OnTable callback failed
-out/test/spec/memory64/table.wast:54: assert_invalid passed:
+out/test/spec/memory64/table.txt:56: assert_invalid passed:
out/test/spec/memory64/table/table.24.wasm:0000013: error: max elems (0) must be >= initial elems (4294967295)
0000013: error: OnTable callback failed
-out/test/spec/memory64/table.wast:60: assert_invalid passed:
+out/test/spec/memory64/table.txt:62: assert_invalid passed:
out/test/spec/memory64/table/table.25.wasm:000000c: error: table variable out of range: 0 (max 0)
000000c: error: BeginElemSegment callback failed
-out/test/spec/memory64/table.wast:61: assert_invalid passed:
+out/test/spec/memory64/table.txt:63: assert_invalid passed:
out/test/spec/memory64/table/table.26.wasm:0000016: error: table variable out of range: 0 (max 0)
0000016: error: BeginElemSegment callback failed
-out/test/spec/memory64/table.wast:65: assert_malformed passed:
+out/test/spec/memory64/table.txt:67: assert_malformed passed:
out/test/spec/memory64/table/table.27.wat:1:24: error: redefinition of table "$foo"
(table $foo 1 funcref)(table $foo 1 funcref)
^^^^^
-out/test/spec/memory64/table.wast:69: assert_malformed passed:
+out/test/spec/memory64/table.txt:71: assert_malformed passed:
out/test/spec/memory64/table/table.28.wat:1:39: error: redefinition of table "$foo"
(import "" "" (table $foo 1 funcref))(table $foo 1 funcref)
^^^^^
-out/test/spec/memory64/table.wast:73: assert_malformed passed:
+out/test/spec/memory64/table.txt:75: assert_malformed passed:
out/test/spec/memory64/table/table.29.wat:1:39: error: redefinition of table "$foo"
(import "" "" (table $foo 1 funcref))(import "" "" (table $foo 1 funcref))
^^^^^^
diff --git a/test/spec/memory64/table_copy_mixed.txt b/test/spec/memory64/table_copy_mixed.txt
new file mode 100644
index 00000000..b6118e74
--- /dev/null
+++ b/test/spec/memory64/table_copy_mixed.txt
@@ -0,0 +1,15 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/memory64/table_copy_mixed.wast
+;;; ARGS*: --enable-memory64
+(;; STDOUT ;;;
+out/test/spec/memory64/table_copy_mixed.wast:20: assert_invalid passed:
+ out/test/spec/memory64/table_copy_mixed/table_copy_mixed.1.wasm:000003e: error: type mismatch in table.copy, expected [i32, i64, i32] but got [i32, i64, i64]
+ 000003e: error: OnTableCopyExpr callback failed
+out/test/spec/memory64/table_copy_mixed.wast:30: assert_invalid passed:
+ out/test/spec/memory64/table_copy_mixed/table_copy_mixed.2.wasm:000003d: error: type mismatch in table.copy, expected [i32, i64, i32] but got [i32, i32, i32]
+ 000003d: error: OnTableCopyExpr callback failed
+out/test/spec/memory64/table_copy_mixed.wast:40: assert_invalid passed:
+ out/test/spec/memory64/table_copy_mixed/table_copy_mixed.3.wasm:000003d: error: type mismatch in table.copy, expected [i32, i64, i32] but got [i64, i64, i32]
+ 000003d: error: OnTableCopyExpr callback failed
+4/4 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/memory64/table_grow.txt b/test/spec/memory64/table_grow.txt
index d0d621fc..c0a28c6e 100644
--- a/test/spec/memory64/table_grow.txt
+++ b/test/spec/memory64/table_grow.txt
@@ -14,26 +14,26 @@ out/test/spec/memory64/table_grow.wast:59: assert_trap passed: out of bounds tab
out/test/spec/memory64/table_grow.wast:60: assert_trap passed: out of bounds table access: table.get at 1 >= max value 1
out/test/spec/memory64/table_grow.wast:71: assert_trap passed: out of bounds table access: table.set at 5 >= max value 5
out/test/spec/memory64/table_grow.wast:72: assert_trap passed: out of bounds table access: table.get at 5 >= max value 5
-out/test/spec/memory64/table_grow.wast:147: assert_invalid passed:
- out/test/spec/memory64/table_grow/table_grow.5.wasm:0000021: error: type mismatch in table.grow, expected [externref, i32] but got []
+out/test/spec/memory64/table_grow.wast:168: assert_invalid passed:
+ out/test/spec/memory64/table_grow/table_grow.8.wasm:0000021: error: type mismatch in table.grow, expected [externref, i32] but got []
0000021: error: OnTableGrowExpr callback failed
-out/test/spec/memory64/table_grow.wast:156: assert_invalid passed:
- out/test/spec/memory64/table_grow/table_grow.6.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [externref]
+out/test/spec/memory64/table_grow.wast:177: assert_invalid passed:
+ out/test/spec/memory64/table_grow/table_grow.9.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [externref]
0000023: error: OnTableGrowExpr callback failed
-out/test/spec/memory64/table_grow.wast:165: assert_invalid passed:
- out/test/spec/memory64/table_grow/table_grow.7.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [i32]
+out/test/spec/memory64/table_grow.wast:186: assert_invalid passed:
+ out/test/spec/memory64/table_grow/table_grow.10.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [i32]
0000023: error: OnTableGrowExpr callback failed
-out/test/spec/memory64/table_grow.wast:174: assert_invalid passed:
- out/test/spec/memory64/table_grow/table_grow.8.wasm:0000028: error: type mismatch in table.grow, expected [externref, i32] but got [externref, f32]
+out/test/spec/memory64/table_grow.wast:195: assert_invalid passed:
+ out/test/spec/memory64/table_grow/table_grow.11.wasm:0000028: error: type mismatch in table.grow, expected [externref, i32] but got [externref, f32]
0000028: error: OnTableGrowExpr callback failed
-out/test/spec/memory64/table_grow.wast:183: assert_invalid passed:
- out/test/spec/memory64/table_grow/table_grow.9.wasm:0000026: error: type mismatch in table.grow, expected [funcref, i32] but got [externref, i32]
+out/test/spec/memory64/table_grow.wast:204: assert_invalid passed:
+ out/test/spec/memory64/table_grow/table_grow.12.wasm:0000026: error: type mismatch in table.grow, expected [funcref, i32] but got [externref, i32]
0000026: error: OnTableGrowExpr callback failed
-out/test/spec/memory64/table_grow.wast:193: assert_invalid passed:
- out/test/spec/memory64/table_grow/table_grow.10.wasm:0000025: error: type mismatch at end of function, expected [] but got [i32]
+out/test/spec/memory64/table_grow.wast:214: assert_invalid passed:
+ out/test/spec/memory64/table_grow/table_grow.13.wasm:0000025: error: type mismatch at end of function, expected [] but got [i32]
0000025: error: EndFunctionBody callback failed
-out/test/spec/memory64/table_grow.wast:202: assert_invalid passed:
- out/test/spec/memory64/table_grow/table_grow.11.wasm:0000026: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/spec/memory64/table_grow.wast:223: assert_invalid passed:
+ out/test/spec/memory64/table_grow/table_grow.14.wasm:0000026: error: type mismatch in implicit return, expected [f32] but got [i32]
0000026: error: EndFunctionBody callback failed
-71/71 tests passed.
+77/77 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/memory_grow.txt b/test/spec/memory_grow.txt
index 2e376acf..49f718a8 100644
--- a/test/spec/memory_grow.txt
+++ b/test/spec/memory_grow.txt
@@ -9,26 +9,26 @@ out/test/spec/memory_grow.wast:18: assert_trap passed: out of bounds memory acce
out/test/spec/memory_grow.wast:24: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
out/test/spec/memory_grow.wast:25: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
out/test/spec/memory_grow.wast:286: assert_trap passed: undefined table index
-out/test/spec/memory_grow.wast:313: assert_invalid passed:
- out/test/spec/memory_grow/memory_grow.5.wasm:000001f: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/memory_grow.wast:334: assert_invalid passed:
+ out/test/spec/memory_grow/memory_grow.8.wasm:000001f: error: type mismatch in memory.grow, expected [i32] but got []
000001f: error: OnMemoryGrowExpr callback failed
-out/test/spec/memory_grow.wast:322: assert_invalid passed:
- out/test/spec/memory_grow/memory_grow.6.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/memory_grow.wast:343: assert_invalid passed:
+ out/test/spec/memory_grow/memory_grow.9.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
0000023: error: OnMemoryGrowExpr callback failed
-out/test/spec/memory_grow.wast:332: assert_invalid passed:
- out/test/spec/memory_grow/memory_grow.7.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/memory_grow.wast:353: assert_invalid passed:
+ out/test/spec/memory_grow/memory_grow.10.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
0000023: error: OnMemoryGrowExpr callback failed
-out/test/spec/memory_grow.wast:342: assert_invalid passed:
- out/test/spec/memory_grow/memory_grow.8.wasm:0000025: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/memory_grow.wast:363: assert_invalid passed:
+ out/test/spec/memory_grow/memory_grow.11.wasm:0000025: error: type mismatch in memory.grow, expected [i32] but got []
0000025: error: OnMemoryGrowExpr callback failed
-out/test/spec/memory_grow.wast:353: assert_invalid passed:
- out/test/spec/memory_grow/memory_grow.9.wasm:0000024: error: type mismatch in memory.grow, expected [i32] but got [f32]
+out/test/spec/memory_grow.wast:374: assert_invalid passed:
+ out/test/spec/memory_grow/memory_grow.12.wasm:0000024: error: type mismatch in memory.grow, expected [i32] but got [f32]
0000024: error: OnMemoryGrowExpr callback failed
-out/test/spec/memory_grow.wast:363: assert_invalid passed:
- out/test/spec/memory_grow/memory_grow.10.wasm:0000021: error: type mismatch at end of function, expected [] but got [i32]
+out/test/spec/memory_grow.wast:384: assert_invalid passed:
+ out/test/spec/memory_grow/memory_grow.13.wasm:0000021: error: type mismatch at end of function, expected [] but got [i32]
0000021: error: EndFunctionBody callback failed
-out/test/spec/memory_grow.wast:372: assert_invalid passed:
- out/test/spec/memory_grow/memory_grow.11.wasm:0000022: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/spec/memory_grow.wast:393: assert_invalid passed:
+ out/test/spec/memory_grow/memory_grow.14.wasm:0000022: error: type mismatch in implicit return, expected [f32] but got [i32]
0000022: error: EndFunctionBody callback failed
-96/96 tests passed.
+102/102 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/align.txt b/test/spec/multi-memory/align.txt
new file mode 100644
index 00000000..803b6077
--- /dev/null
+++ b/test/spec/multi-memory/align.txt
@@ -0,0 +1,311 @@
+;;; TOOL: run-interp-spec
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/align.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+out/test/spec/multi-memory/align.wast:28: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.23.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load8_s align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:34: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.24.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load8_s align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:40: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.25.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load8_u align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:46: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.26.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load8_u align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:52: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.27.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load16_s align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:58: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.28.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load16_s align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:64: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.29.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load16_u align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:70: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.30.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load16_u align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:76: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.31.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:82: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.32.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i32.load align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:88: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.33.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load8_s align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:94: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.34.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load8_s align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:100: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.35.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load8_u align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:106: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.36.wat:1:45: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load8_u align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:112: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.37.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load16_s align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:118: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.38.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load16_s align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:124: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.39.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load16_u align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:130: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.40.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load16_u align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:136: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.41.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load32_s align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:142: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.42.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load32_s align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:148: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.43.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load32_u align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:154: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.44.wat:1:46: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load32_u align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:160: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.45.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:166: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.46.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (i64.load align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:172: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.47.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (f32.load align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:178: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.48.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (f32.load align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:184: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.49.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (f64.load align=0 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:190: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.50.wat:1:42: error: alignment must be power-of-two
+ (module (memory 0) (func (drop (f64.load align=7 (i32.const 0)))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:197: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.51.wat:1:38: error: alignment must be power-of-two
+ (module (memory 0) (func (i32.store8 align=0 (i32.const 0) (i32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:203: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.52.wat:1:38: error: alignment must be power-of-two
+ (module (memory 0) (func (i32.store8 align=7 (i32.const 0) (i32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:209: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.53.wat:1:39: error: alignment must be power-of-two
+ (module (memory 0) (func (i32.store16 align=0 (i32.const 0) (i32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:215: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.54.wat:1:39: error: alignment must be power-of-two
+ (module (memory 0) (func (i32.store16 align=7 (i32.const 0) (i32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:221: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.55.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (i32.store align=0 (i32.const 0) (i32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:227: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.56.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (i32.store align=7 (i32.const 0) (i32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:233: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.57.wat:1:38: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store8 align=0 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:239: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.58.wat:1:38: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store8 align=7 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:245: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.59.wat:1:39: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store16 align=0 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:251: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.60.wat:1:39: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store16 align=7 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:257: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.61.wat:1:39: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store32 align=0 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:263: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.62.wat:1:39: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store32 align=7 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:269: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.63.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store align=0 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:275: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.64.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (i64.store align=7 (i32.const 0) (i64.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:281: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.65.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (f32.store align=0 (i32.const 0) (f32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:287: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.66.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (f32.store align=7 (i32.const 0) (f32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:293: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.67.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (f64.store align=0 (i32.const 0) (f32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:299: assert_malformed passed:
+ out/test/spec/multi-memory/align/align.68.wat:1:37: error: alignment must be power-of-two
+ (module (memory 0) (func (f64.store align=7 (i32.const 0) (f32.const 0))))
+ ^^^^^^^
+out/test/spec/multi-memory/align.wast:306: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.69.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:310: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.70.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:314: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.71.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:318: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.72.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:322: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.73.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:326: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.74.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:330: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.75.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:334: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.76.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:338: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.77.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:342: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.78.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:346: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.79.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:350: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.80.wasm:0000021: error: alignment must not be larger than natural alignment (8)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:354: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.81.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:358: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.82.wasm:0000021: error: alignment must not be larger than natural alignment (8)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:363: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.83.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:367: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.84.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:371: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.85.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:375: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.86.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:379: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.87.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:383: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.88.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:387: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.89.wasm:0000021: error: alignment must not be larger than natural alignment (1)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:391: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.90.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:395: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.91.wasm:0000021: error: alignment must not be larger than natural alignment (2)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:399: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.92.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:403: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.93.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:407: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.94.wasm:0000021: error: alignment must not be larger than natural alignment (8)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:411: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.95.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:415: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.96.wasm:0000021: error: alignment must not be larger than natural alignment (8)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:420: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.97.wasm:0000023: error: alignment must not be larger than natural alignment (1)
+ 0000023: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:424: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.98.wasm:0000023: error: alignment must not be larger than natural alignment (2)
+ 0000023: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:428: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.99.wasm:0000023: error: alignment must not be larger than natural alignment (4)
+ 0000023: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:432: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.100.wasm:0000023: error: alignment must not be larger than natural alignment (1)
+ 0000023: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:436: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.101.wasm:0000023: error: alignment must not be larger than natural alignment (2)
+ 0000023: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:440: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.102.wasm:0000023: error: alignment must not be larger than natural alignment (4)
+ 0000023: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:444: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.103.wasm:0000023: error: alignment must not be larger than natural alignment (8)
+ 0000023: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:448: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.104.wasm:0000026: error: alignment must not be larger than natural alignment (4)
+ 0000026: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:452: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.105.wasm:000002a: error: alignment must not be larger than natural alignment (8)
+ 000002a: error: OnStoreExpr callback failed
+out/test/spec/multi-memory/align.wast:864: assert_trap passed: out of bounds memory access: access at 65532+8 >= max value 65536
+out/test/spec/multi-memory/align.wast:873: assert_invalid passed:
+ out/test/spec/multi-memory/align/align.108.wasm:0000021: error: alignment must not be larger than natural alignment (4)
+ 0000021: error: OnLoadExpr callback failed
+out/test/spec/multi-memory/align.wast:892: assert_invalid passed:
+ 0000020: error: invalid load alignment: 32
+out/test/spec/multi-memory/align.wast:911: assert_invalid passed:
+ 0000020: error: invalid load alignment: 33
+out/test/spec/multi-memory/align.wast:930: assert_invalid passed:
+ 0000020: error: invalid load alignment: 63
+160/160 tests passed.
+;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/binary.txt b/test/spec/multi-memory/binary.txt
index 4aa49b81..d88e22f5 100644
--- a/test/spec/multi-memory/binary.txt
+++ b/test/spec/multi-memory/binary.txt
@@ -94,79 +94,125 @@ out/test/spec/multi-memory/binary.wast:240: assert_malformed passed:
0000015: error: function signature count != function body count
out/test/spec/multi-memory/binary.wast:263: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/multi-memory/binary.wast:273: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:275: assert_malformed passed:
000000e: error: data segment count does not equal count in DataCount section
-out/test/spec/multi-memory/binary.wast:283: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:287: assert_malformed passed:
+ 0000010: error: Data section missing but DataCount non-zero
+out/test/spec/multi-memory/binary.wast:303: assert_malformed passed:
0000024: error: memory.init requires data count section
-out/test/spec/multi-memory/binary.wast:305: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:326: assert_malformed passed:
000001e: error: data.drop requires data count section
-out/test/spec/multi-memory/binary.wast:324: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:346: assert_malformed passed:
0000024: error: unexpected opcode: 0xf3
-out/test/spec/multi-memory/binary.wast:350: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:374: assert_malformed passed:
0000022: error: table elem type must be a reference type
-out/test/spec/multi-memory/binary.wast:431: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:459: assert_malformed passed:
000000a: error: invalid section size: extends past end
-out/test/spec/multi-memory/binary.wast:442: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:470: assert_malformed passed:
000000e: error: unfinished section (expected end: 0x11)
-out/test/spec/multi-memory/binary.wast:461: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:489: assert_malformed passed:
000000e: error: invalid import tag kind: exceptions not allowed
-out/test/spec/multi-memory/binary.wast:471: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:499: assert_malformed passed:
000000e: error: invalid import tag kind: exceptions not allowed
-out/test/spec/multi-memory/binary.wast:482: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:510: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/multi-memory/binary.wast:492: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:520: assert_malformed passed:
000000e: error: malformed import kind: 5
-out/test/spec/multi-memory/binary.wast:503: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:531: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/multi-memory/binary.wast:513: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:541: assert_malformed passed:
000000e: error: malformed import kind: 128
-out/test/spec/multi-memory/binary.wast:526: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:554: assert_malformed passed:
0000027: error: unable to read u32 leb128: string length
-out/test/spec/multi-memory/binary.wast:545: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:573: assert_malformed passed:
000002b: error: unfinished section (expected end: 0x40)
-out/test/spec/multi-memory/binary.wast:576: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:604: assert_malformed passed:
000000b: error: invalid table count 1, only 0 bytes left in section
-out/test/spec/multi-memory/binary.wast:586: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:614: assert_malformed passed:
000000d: error: tables may not be shared
-out/test/spec/multi-memory/binary.wast:595: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:623: assert_malformed passed:
000000d: error: tables may not be shared
-out/test/spec/multi-memory/binary.wast:605: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:633: assert_malformed passed:
000000d: error: malformed table limits flag: 129
-out/test/spec/multi-memory/binary.wast:623: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:651: assert_malformed passed:
000000b: error: invalid memory count 1, only 0 bytes left in section
-out/test/spec/multi-memory/binary.wast:633: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:661: assert_malformed passed:
000000c: error: memory may not be shared: threads not allowed
-out/test/spec/multi-memory/binary.wast:641: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:669: assert_malformed passed:
000000c: error: memory may not be shared: threads not allowed
-out/test/spec/multi-memory/binary.wast:650: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:678: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/multi-memory/binary.wast:659: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:687: assert_malformed passed:
000000c: error: malformed memory limits flag: 129
-out/test/spec/multi-memory/binary.wast:676: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:704: assert_malformed passed:
0000010: error: unable to read i32 leb128: global type
-out/test/spec/multi-memory/binary.wast:687: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:715: assert_malformed passed:
0000010: error: unfinished section (expected end: 0x15)
-out/test/spec/multi-memory/binary.wast:710: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:738: assert_malformed passed:
000001b: error: unable to read u32 leb128: string length
-out/test/spec/multi-memory/binary.wast:731: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:759: assert_malformed passed:
000001b: error: unfinished section (expected end: 0x20)
-out/test/spec/multi-memory/binary.wast:765: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:793: assert_malformed passed:
0000021: error: unable to read u32 leb128: elem segment flags
-out/test/spec/multi-memory/binary.wast:781: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:809: assert_malformed passed:
0000024: error: init expression must end with END opcode
-out/test/spec/multi-memory/binary.wast:798: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:826: assert_malformed passed:
0000021: error: unfinished section (expected end: 0x27)
-out/test/spec/multi-memory/binary.wast:824: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:852: assert_malformed passed:
0000016: error: unable to read u32 leb128: data segment flags
-out/test/spec/multi-memory/binary.wast:837: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:865: assert_malformed passed:
0000016: error: unfinished section (expected end: 0x1c)
-out/test/spec/multi-memory/binary.wast:850: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:878: assert_malformed passed:
0000015: error: unable to read data: data segment data
-out/test/spec/multi-memory/binary.wast:864: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:892: assert_malformed passed:
000001a: error: unfinished section (expected end: 0x1b)
-out/test/spec/multi-memory/binary.wast:895: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:923: assert_malformed passed:
0000048: error: function body must end with END opcode
-out/test/spec/multi-memory/binary.wast:942: assert_malformed passed:
+out/test/spec/multi-memory/binary.wast:970: assert_malformed passed:
0000017: error: multiple Start sections
-102/102 tests passed.
+out/test/spec/multi-memory/binary.wast:987: assert_malformed passed:
+ 0000014: error: multiple Function sections
+out/test/spec/multi-memory/binary.wast:999: assert_malformed passed:
+ 0000016: error: function signature count != function body count
+out/test/spec/multi-memory/binary.wast:1011: assert_malformed passed:
+ 000000d: error: multiple DataCount sections
+out/test/spec/multi-memory/binary.wast:1021: assert_malformed passed:
+ 000000d: error: multiple Data sections
+out/test/spec/multi-memory/binary.wast:1031: assert_malformed passed:
+ 000000d: error: multiple Global sections
+out/test/spec/multi-memory/binary.wast:1041: assert_malformed passed:
+ 000000d: error: multiple Export sections
+out/test/spec/multi-memory/binary.wast:1051: assert_malformed passed:
+ 000000d: error: multiple Table sections
+out/test/spec/multi-memory/binary.wast:1061: assert_malformed passed:
+ 000000d: error: multiple Elem sections
+out/test/spec/multi-memory/binary.wast:1071: assert_malformed passed:
+ 000000d: error: multiple Import sections
+out/test/spec/multi-memory/binary.wast:1081: assert_malformed passed:
+ 000000d: error: multiple Type sections
+out/test/spec/multi-memory/binary.wast:1091: assert_malformed passed:
+ 000000d: error: multiple Memory sections
+out/test/spec/multi-memory/binary.wast:1101: assert_malformed passed:
+ 000000d: error: section Type out of order
+out/test/spec/multi-memory/binary.wast:1111: assert_malformed passed:
+ 000000d: error: section Import out of order
+out/test/spec/multi-memory/binary.wast:1121: assert_malformed passed:
+ 000000d: error: section Function out of order
+out/test/spec/multi-memory/binary.wast:1131: assert_malformed passed:
+ 000000d: error: section Table out of order
+out/test/spec/multi-memory/binary.wast:1141: assert_malformed passed:
+ 000000d: error: section Memory out of order
+out/test/spec/multi-memory/binary.wast:1151: assert_malformed passed:
+ 000000d: error: section Global out of order
+out/test/spec/multi-memory/binary.wast:1161: assert_malformed passed:
+ 0000011: error: section Export out of order
+out/test/spec/multi-memory/binary.wast:1172: assert_malformed passed:
+ 0000011: error: section Start out of order
+out/test/spec/multi-memory/binary.wast:1183: assert_malformed passed:
+ 000000d: error: section Elem out of order
+out/test/spec/multi-memory/binary.wast:1193: assert_malformed passed:
+ 000000d: error: section DataCount out of order
+out/test/spec/multi-memory/binary.wast:1203: assert_malformed passed:
+ 000000d: error: section Code out of order
+126/126 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/imports.txt b/test/spec/multi-memory/imports.txt
index f06588ae..f5267d49 100644
--- a/test/spec/multi-memory/imports.txt
+++ b/test/spec/multi-memory/imports.txt
@@ -112,125 +112,125 @@ out/test/spec/multi-memory/imports.wast:360: assert_trap passed: undefined table
out/test/spec/multi-memory/imports.wast:375: assert_trap passed: uninitialized table element
out/test/spec/multi-memory/imports.wast:378: assert_trap passed: uninitialized table element
out/test/spec/multi-memory/imports.wast:379: assert_trap passed: undefined table index
-out/test/spec/multi-memory/imports.wast:411: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:410: assert_unlinkable passed:
error: invalid import "test.unknown"
-out/test/spec/multi-memory/imports.wast:415: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:414: assert_unlinkable passed:
error: invalid import "spectest.unknown"
-out/test/spec/multi-memory/imports.wast:420: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:419: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/multi-memory/imports.wast:424: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:423: assert_unlinkable passed:
error: max size (unspecified) larger than declared (20)
-out/test/spec/multi-memory/imports.wast:428: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:427: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/multi-memory/imports.wast:432: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:431: assert_unlinkable passed:
error: max size (20) larger than declared (18)
-out/test/spec/multi-memory/imports.wast:436: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:435: assert_unlinkable passed:
error: actual size (10) smaller than declared (12)
-out/test/spec/multi-memory/imports.wast:440: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:439: assert_unlinkable passed:
error: max size (20) larger than declared (15)
-out/test/spec/multi-memory/imports.wast:445: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:444: assert_unlinkable passed:
error: expected import "test.func" to have kind table, not func
-out/test/spec/multi-memory/imports.wast:449: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:448: assert_unlinkable passed:
error: expected import "test.global-i32" to have kind table, not global
-out/test/spec/multi-memory/imports.wast:453: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:452: assert_unlinkable passed:
error: expected import "test.memory-2-inf" to have kind table, not memory
-out/test/spec/multi-memory/imports.wast:457: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:456: assert_unlinkable passed:
error: expected import "spectest.print_i32" to have kind table, not func
-out/test/spec/multi-memory/imports.wast:475: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
-out/test/spec/multi-memory/imports.wast:486: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
-out/test/spec/multi-memory/imports.wast:499: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:474: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/multi-memory/imports.wast:485: assert_trap passed: out of bounds memory access: access at 1000000+4 >= max value 65536
+out/test/spec/multi-memory/imports.wast:498: assert_unlinkable passed:
error: invalid import "test.unknown"
-out/test/spec/multi-memory/imports.wast:503: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:502: assert_unlinkable passed:
error: invalid import "spectest.unknown"
-out/test/spec/multi-memory/imports.wast:508: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:507: assert_unlinkable passed:
error: actual size (2) smaller than declared (3)
-out/test/spec/multi-memory/imports.wast:512: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:511: assert_unlinkable passed:
error: max size (unspecified) larger than declared (3)
-out/test/spec/multi-memory/imports.wast:516: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:515: assert_unlinkable passed:
error: actual size (1) smaller than declared (2)
-out/test/spec/multi-memory/imports.wast:520: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:519: assert_unlinkable passed:
error: max size (2) larger than declared (1)
-out/test/spec/multi-memory/imports.wast:525: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:524: assert_unlinkable passed:
error: expected import "test.func-i32" to have kind memory, not func
-out/test/spec/multi-memory/imports.wast:529: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:528: assert_unlinkable passed:
error: expected import "test.global-i32" to have kind memory, not global
-out/test/spec/multi-memory/imports.wast:533: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:532: assert_unlinkable passed:
error: expected import "test.table-10-inf" to have kind memory, not table
-out/test/spec/multi-memory/imports.wast:537: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:536: assert_unlinkable passed:
error: expected import "spectest.print_i32" to have kind memory, not func
-out/test/spec/multi-memory/imports.wast:541: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:540: assert_unlinkable passed:
error: expected import "spectest.global_i32" to have kind memory, not global
-out/test/spec/multi-memory/imports.wast:545: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:544: assert_unlinkable passed:
error: expected import "spectest.table" to have kind memory, not table
-out/test/spec/multi-memory/imports.wast:550: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:549: assert_unlinkable passed:
error: actual size (1) smaller than declared (2)
-out/test/spec/multi-memory/imports.wast:554: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:553: assert_unlinkable passed:
error: max size (2) larger than declared (1)
-out/test/spec/multi-memory/imports.wast:592: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.124.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:571: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.121.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (func))
^^^^^^
-out/test/spec/multi-memory/imports.wast:596: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.125.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:575: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.122.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (global i64))
^^^^^^
-out/test/spec/multi-memory/imports.wast:600: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.126.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:579: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.123.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/multi-memory/imports.wast:604: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.127.wat:1:9: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:583: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.124.wat:1:9: error: imports must occur before all non-import definitions
(func) (import "" "" (memory 0))
^^^^^^
-out/test/spec/multi-memory/imports.wast:609: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.128.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:588: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.125.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (func))
^^^^^^
-out/test/spec/multi-memory/imports.wast:613: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.129.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:592: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.126.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (global f32))
^^^^^^
-out/test/spec/multi-memory/imports.wast:617: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.130.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:596: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.127.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/multi-memory/imports.wast:621: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.131.wat:1:29: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:600: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.128.wat:1:29: error: imports must occur before all non-import definitions
(global i64 (i64.const 0)) (import "" "" (memory 0))
^^^^^^
-out/test/spec/multi-memory/imports.wast:626: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.132.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:605: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.129.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (func))
^^^^^^
-out/test/spec/multi-memory/imports.wast:630: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.133.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:609: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.130.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (global i32))
^^^^^^
-out/test/spec/multi-memory/imports.wast:634: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.134.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:613: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.131.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (table 0 funcref))
^^^^^^
-out/test/spec/multi-memory/imports.wast:638: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.135.wat:1:20: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:617: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.132.wat:1:20: error: imports must occur before all non-import definitions
(table 0 funcref) (import "" "" (memory 0))
^^^^^^
-out/test/spec/multi-memory/imports.wast:643: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.136.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:622: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.133.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (func))
^^^^^^
-out/test/spec/multi-memory/imports.wast:647: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.137.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:626: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.134.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (global i32))
^^^^^^
-out/test/spec/multi-memory/imports.wast:651: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.138.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:630: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.135.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (table 1 3 funcref))
^^^^^^
-out/test/spec/multi-memory/imports.wast:655: assert_malformed passed:
- out/test/spec/multi-memory/imports/imports.139.wat:1:13: error: imports must occur before all non-import definitions
+out/test/spec/multi-memory/imports.wast:634: assert_malformed passed:
+ out/test/spec/multi-memory/imports/imports.136.wat:1:13: error: imports must occur before all non-import definitions
(memory 0) (import "" "" (memory 1 2))
^^^^^^
-out/test/spec/multi-memory/imports.wast:665: assert_unlinkable passed:
+out/test/spec/multi-memory/imports.wast:644: assert_unlinkable passed:
error: invalid import "not wasm.overloaded"
-179/179 tests passed.
+173/173 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory.txt b/test/spec/multi-memory/memory.txt
index ece4f5eb..2b62787b 100644
--- a/test/spec/multi-memory/memory.txt
+++ b/test/spec/multi-memory/memory.txt
@@ -77,5 +77,5 @@ out/test/spec/multi-memory/memory.wast:236: assert_malformed passed:
out/test/spec/multi-memory/memory/memory.31.wat:1:32: error: redefinition of memory "$foo"
(import "" "" (memory $foo 1))(import "" "" (memory $foo 1))
^^^^^^
-77/77 tests passed.
+86/86 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/multi-memory/memory_grow.txt b/test/spec/multi-memory/memory_grow.txt
index 8cf6e02c..4e082ccc 100644
--- a/test/spec/multi-memory/memory_grow.txt
+++ b/test/spec/multi-memory/memory_grow.txt
@@ -9,32 +9,32 @@ out/test/spec/multi-memory/memory_grow.wast:89: assert_trap passed: out of bound
out/test/spec/multi-memory/memory_grow.wast:95: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
out/test/spec/multi-memory/memory_grow.wast:96: assert_trap passed: out of bounds memory access: access at 65536+4 >= max value 65536
out/test/spec/multi-memory/memory_grow.wast:376: assert_trap passed: undefined table index
-out/test/spec/multi-memory/memory_grow.wast:431: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.8.wasm:0000024: error: type mismatch in memory.grow, expected [i32] but got [f32]
+out/test/spec/multi-memory/memory_grow.wast:451: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.11.wasm:0000024: error: type mismatch in memory.grow, expected [i32] but got [f32]
0000024: error: OnMemoryGrowExpr callback failed
-out/test/spec/multi-memory/memory_grow.wast:440: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.9.wasm:000001f: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/multi-memory/memory_grow.wast:460: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.12.wasm:000001f: error: type mismatch in memory.grow, expected [i32] but got []
000001f: error: OnMemoryGrowExpr callback failed
-out/test/spec/multi-memory/memory_grow.wast:449: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.10.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/multi-memory/memory_grow.wast:469: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.13.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
0000023: error: OnMemoryGrowExpr callback failed
-out/test/spec/multi-memory/memory_grow.wast:459: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.11.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/multi-memory/memory_grow.wast:479: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.14.wasm:0000023: error: type mismatch in memory.grow, expected [i32] but got []
0000023: error: OnMemoryGrowExpr callback failed
-out/test/spec/multi-memory/memory_grow.wast:469: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.12.wasm:0000025: error: type mismatch in memory.grow, expected [i32] but got []
+out/test/spec/multi-memory/memory_grow.wast:489: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.15.wasm:0000025: error: type mismatch in memory.grow, expected [i32] but got []
0000025: error: OnMemoryGrowExpr callback failed
-out/test/spec/multi-memory/memory_grow.wast:480: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.13.wasm:0000021: error: type mismatch at end of function, expected [] but got [i32]
+out/test/spec/multi-memory/memory_grow.wast:500: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.16.wasm:0000021: error: type mismatch at end of function, expected [] but got [i32]
0000021: error: EndFunctionBody callback failed
-out/test/spec/multi-memory/memory_grow.wast:489: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.14.wasm:0000024: error: type mismatch in memory.grow, expected [i32] but got [f32]
+out/test/spec/multi-memory/memory_grow.wast:509: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.17.wasm:0000024: error: type mismatch in memory.grow, expected [i32] but got [f32]
0000024: error: OnMemoryGrowExpr callback failed
-out/test/spec/multi-memory/memory_grow.wast:499: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.15.wasm:0000021: error: type mismatch at end of function, expected [] but got [i32]
+out/test/spec/multi-memory/memory_grow.wast:519: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.18.wasm:0000021: error: type mismatch at end of function, expected [] but got [i32]
0000021: error: EndFunctionBody callback failed
-out/test/spec/multi-memory/memory_grow.wast:508: assert_invalid passed:
- out/test/spec/multi-memory/memory_grow/memory_grow.16.wasm:0000022: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/spec/multi-memory/memory_grow.wast:528: assert_invalid passed:
+ out/test/spec/multi-memory/memory_grow/memory_grow.19.wasm:0000022: error: type mismatch in implicit return, expected [f32] but got [i32]
0000022: error: EndFunctionBody callback failed
-148/148 tests passed.
+154/154 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/relaxed-simd/relaxed_madd_nmadd.txt b/test/spec/relaxed-simd/relaxed_madd_nmadd.txt
index bf3cc955..18a1d39d 100644
--- a/test/spec/relaxed-simd/relaxed_madd_nmadd.txt
+++ b/test/spec/relaxed-simd/relaxed_madd_nmadd.txt
@@ -2,5 +2,5 @@
;;; STDIN_FILE: third_party/testsuite/proposals/relaxed-simd/relaxed_madd_nmadd.wast
;;; ARGS*: --enable-relaxed-simd
(;; STDOUT ;;;
-17/17 tests passed.
+19/19 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/table_grow.txt b/test/spec/table_grow.txt
index 4396320b..7bcab8c5 100644
--- a/test/spec/table_grow.txt
+++ b/test/spec/table_grow.txt
@@ -7,26 +7,26 @@ out/test/spec/table_grow.wast:25: assert_trap passed: out of bounds table access
out/test/spec/table_grow.wast:26: assert_trap passed: out of bounds table access: table.get at 1 >= max value 1
out/test/spec/table_grow.wast:37: assert_trap passed: out of bounds table access: table.set at 5 >= max value 5
out/test/spec/table_grow.wast:38: assert_trap passed: out of bounds table access: table.get at 5 >= max value 5
-out/test/spec/table_grow.wast:114: assert_invalid passed:
- out/test/spec/table_grow/table_grow.5.wasm:0000021: error: type mismatch in table.grow, expected [externref, i32] but got []
+out/test/spec/table_grow.wast:135: assert_invalid passed:
+ out/test/spec/table_grow/table_grow.8.wasm:0000021: error: type mismatch in table.grow, expected [externref, i32] but got []
0000021: error: OnTableGrowExpr callback failed
-out/test/spec/table_grow.wast:123: assert_invalid passed:
- out/test/spec/table_grow/table_grow.6.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [externref]
+out/test/spec/table_grow.wast:144: assert_invalid passed:
+ out/test/spec/table_grow/table_grow.9.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [externref]
0000023: error: OnTableGrowExpr callback failed
-out/test/spec/table_grow.wast:132: assert_invalid passed:
- out/test/spec/table_grow/table_grow.7.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [i32]
+out/test/spec/table_grow.wast:153: assert_invalid passed:
+ out/test/spec/table_grow/table_grow.10.wasm:0000023: error: type mismatch in table.grow, expected [externref, i32] but got [i32]
0000023: error: OnTableGrowExpr callback failed
-out/test/spec/table_grow.wast:141: assert_invalid passed:
- out/test/spec/table_grow/table_grow.8.wasm:0000028: error: type mismatch in table.grow, expected [externref, i32] but got [externref, f32]
+out/test/spec/table_grow.wast:162: assert_invalid passed:
+ out/test/spec/table_grow/table_grow.11.wasm:0000028: error: type mismatch in table.grow, expected [externref, i32] but got [externref, f32]
0000028: error: OnTableGrowExpr callback failed
-out/test/spec/table_grow.wast:150: assert_invalid passed:
- out/test/spec/table_grow/table_grow.9.wasm:0000026: error: type mismatch in table.grow, expected [funcref, i32] but got [externref, i32]
+out/test/spec/table_grow.wast:171: assert_invalid passed:
+ out/test/spec/table_grow/table_grow.12.wasm:0000026: error: type mismatch in table.grow, expected [funcref, i32] but got [externref, i32]
0000026: error: OnTableGrowExpr callback failed
-out/test/spec/table_grow.wast:160: assert_invalid passed:
- out/test/spec/table_grow/table_grow.10.wasm:0000025: error: type mismatch at end of function, expected [] but got [i32]
+out/test/spec/table_grow.wast:181: assert_invalid passed:
+ out/test/spec/table_grow/table_grow.13.wasm:0000025: error: type mismatch at end of function, expected [] but got [i32]
0000025: error: EndFunctionBody callback failed
-out/test/spec/table_grow.wast:169: assert_invalid passed:
- out/test/spec/table_grow/table_grow.11.wasm:0000026: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/spec/table_grow.wast:190: assert_invalid passed:
+ out/test/spec/table_grow/table_grow.14.wasm:0000026: error: type mismatch in implicit return, expected [f32] but got [i32]
0000026: error: EndFunctionBody callback failed
-50/50 tests passed.
+56/56 tests passed.
;;; STDOUT ;;)
diff --git a/test/spec/tail-call/return_call_indirect.txt b/test/spec/tail-call/return_call_indirect.txt
index ee1bcf55..d8b3df7e 100644
--- a/test/spec/tail-call/return_call_indirect.txt
+++ b/test/spec/tail-call/return_call_indirect.txt
@@ -76,6 +76,7 @@ out/test/spec/tail-call/return_call_indirect.wast:384: assert_malformed passed:
^^^^^^^^^^^^^^^^^^^^
out/test/spec/tail-call/return_call_indirect.wast:399: assert_invalid passed:
out/test/spec/tail-call/return_call_indirect/return_call_indirect.12.wasm:000001c: error: table variable out of range: 0 (max 0)
+ out/test/spec/tail-call/return_call_indirect/return_call_indirect.12.wasm:000001c: error: type mismatch: return_call_indirect must reference table of funcref type
000001c: error: OnReturnCallIndirectExpr callback failed
out/test/spec/tail-call/return_call_indirect.wast:407: assert_invalid passed:
out/test/spec/tail-call/return_call_indirect/return_call_indirect.13.wasm:0000024: error: type mismatch at end of function, expected [] but got [i32]
diff --git a/test/typecheck/bad-returncallindirect-no-table.txt b/test/typecheck/bad-returncallindirect-no-table.txt
index f6cb30f4..fc3030ad 100644
--- a/test/typecheck/bad-returncallindirect-no-table.txt
+++ b/test/typecheck/bad-returncallindirect-no-table.txt
@@ -12,4 +12,7 @@
out/test/typecheck/bad-returncallindirect-no-table.txt:9:5: error: table variable out of range: 0 (max 0)
return_call_indirect)
^^^^^^^^^^^^^^^^^^^^
+out/test/typecheck/bad-returncallindirect-no-table.txt:9:5: error: type mismatch: return_call_indirect must reference table of funcref type
+ return_call_indirect)
+ ^^^^^^^^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/wasm2c/spec/exception-handling/imports.txt b/test/wasm2c/spec/exception-handling/imports.txt
index 8934d77a..d3a3c170 100644
--- a/test/wasm2c/spec/exception-handling/imports.txt
+++ b/test/wasm2c/spec/exception-handling/imports.txt
@@ -15,5 +15,5 @@ spectest.print_f64(24)
spectest.print_f64(24)
spectest.print_f64(24)
spectest.print_i32(13)
-37/37 tests passed.
+34/34 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/float_exprs.txt b/test/wasm2c/spec/float_exprs.txt
index e0f92791..930dbced 100644
--- a/test/wasm2c/spec/float_exprs.txt
+++ b/test/wasm2c/spec/float_exprs.txt
@@ -2,5 +2,5 @@
;;; TOOL: run-spec-wasm2c
;;; STDIN_FILE: third_party/testsuite/float_exprs.wast
(;; STDOUT ;;;
-794/794 tests passed.
+819/819 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/float_misc.txt b/test/wasm2c/spec/float_misc.txt
index f7f9b23c..c7d340ed 100644
--- a/test/wasm2c/spec/float_misc.txt
+++ b/test/wasm2c/spec/float_misc.txt
@@ -1,5 +1,5 @@
;;; TOOL: run-spec-wasm2c
;;; STDIN_FILE: third_party/testsuite/float_misc.wast
(;; STDOUT ;;;
-440/440 tests passed.
+470/470 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/imports.txt b/test/wasm2c/spec/imports.txt
index 11bb6ed0..d7edf299 100644
--- a/test/wasm2c/spec/imports.txt
+++ b/test/wasm2c/spec/imports.txt
@@ -14,5 +14,5 @@ spectest.print_f64(24)
spectest.print_f64(24)
spectest.print_f64(24)
spectest.print_i32(13)
-37/37 tests passed.
+34/34 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory.txt b/test/wasm2c/spec/memory.txt
index e5a4da1c..08b6e49d 100644
--- a/test/wasm2c/spec/memory.txt
+++ b/test/wasm2c/spec/memory.txt
@@ -1,5 +1,5 @@
;;; TOOL: run-spec-wasm2c
;;; STDIN_FILE: third_party/testsuite/memory.wast
(;; STDOUT ;;;
-45/45 tests passed.
+53/53 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory64/binary0.txt b/test/wasm2c/spec/memory64/binary0.txt
new file mode 100644
index 00000000..f49c0662
--- /dev/null
+++ b/test/wasm2c/spec/memory64/binary0.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/memory64/binary0.wast
+;;; ARGS*: --enable-memory64 --enable-multi-memory
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory64/imports.txt b/test/wasm2c/spec/memory64/imports.txt
new file mode 100644
index 00000000..7cefbce0
--- /dev/null
+++ b/test/wasm2c/spec/memory64/imports.txt
@@ -0,0 +1,19 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/memory64/imports.wast
+;;; ARGS*: --enable-memory64 --enable-exceptions --enable-multi-memory
+(;; STDOUT ;;;
+spectest.print_i32(13)
+spectest.print_i32_f32(14 42)
+spectest.print_i32(13)
+spectest.print_i32(13)
+spectest.print_f32(13)
+spectest.print_i32(13)
+spectest.print_i64(24)
+spectest.print_f64_f64(25 53)
+spectest.print_i64(24)
+spectest.print_f64(24)
+spectest.print_f64(24)
+spectest.print_f64(24)
+spectest.print_i32(13)
+34/34 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory64/memory.txt b/test/wasm2c/spec/memory64/memory.txt
index 5260807c..0f06b345 100644
--- a/test/wasm2c/spec/memory64/memory.txt
+++ b/test/wasm2c/spec/memory64/memory.txt
@@ -2,5 +2,5 @@
;;; STDIN_FILE: third_party/testsuite/proposals/memory64/memory.wast
;;; ARGS*: --enable-memory64
(;; STDOUT ;;;
-45/45 tests passed.
+53/53 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory64/table.txt b/test/wasm2c/spec/memory64/table.txt
index a553dd52..190e16b1 100644
--- a/test/wasm2c/spec/memory64/table.txt
+++ b/test/wasm2c/spec/memory64/table.txt
@@ -1,6 +1,82 @@
;;; TOOL: run-spec-wasm2c
-;;; STDIN_FILE: third_party/testsuite/proposals/memory64/table.wast
;;; ARGS*: --enable-memory64
+;; memory64 table.wast from last commit before wasm-3.0 merge
+
+(module (table 0 funcref))
+(module (table 1 funcref))
+(module (table 0 0 funcref))
+(module (table 0 1 funcref))
+(module (table 1 256 funcref))
+(module (table 0 65536 funcref))
+(module (table 0 0xffff_ffff funcref))
+
+(module (table 0 funcref) (table 0 funcref))
+(module (table (import "spectest" "table") 0 funcref) (table 0 funcref))
+
+(assert_invalid
+ (module (table 1 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+(assert_invalid
+ (module (table 0xffff_ffff 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+
+(assert_invalid
+ (module quote "(table 0x1_0000_0000 funcref)")
+ "table size must be at most 2^32-1"
+)
+(assert_invalid
+ (module quote "(table 0x1_0000_0000 0x1_0000_0000 funcref)")
+ "table size must be at most 2^32-1"
+)
+(assert_invalid
+ (module quote "(table 0 0x1_0000_0000 funcref)")
+ "table size must be at most 2^32-1"
+)
+
+;; Same as above but with i64 index types
+
+(module (table i64 0 funcref))
+(module (table i64 1 funcref))
+(module (table i64 0 0 funcref))
+(module (table i64 0 1 funcref))
+(module (table i64 1 256 funcref))
+(module (table i64 0 65536 funcref))
+(module (table i64 0 0xffff_ffff funcref))
+
+(module (table i64 0 funcref) (table i64 0 funcref))
+(module (table (import "spectest" "table64") i64 0 funcref) (table i64 0 funcref))
+
+(assert_invalid
+ (module (table i64 1 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+(assert_invalid
+ (module (table i64 0xffff_ffff 0 funcref))
+ "size minimum must not be greater than maximum"
+)
+
+;; Elem segments with no table
+
+(assert_invalid (module (elem (i32.const 0))) "unknown table")
+(assert_invalid (module (elem (i32.const 0) $f) (func $f)) "unknown table")
+
+;; Duplicate table identifiers
+
+(assert_malformed (module quote
+ "(table $foo 1 funcref)"
+ "(table $foo 1 funcref)")
+ "duplicate table")
+(assert_malformed (module quote
+ "(import \"\" \"\" (table $foo 1 funcref))"
+ "(table $foo 1 funcref)")
+ "duplicate table")
+(assert_malformed (module quote
+ "(import \"\" \"\" (table $foo 1 funcref))"
+ "(import \"\" \"\" (table $foo 1 funcref))")
+ "duplicate table")
+
(;; STDOUT ;;;
0/0 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory64/table_copy_mixed.txt b/test/wasm2c/spec/memory64/table_copy_mixed.txt
new file mode 100644
index 00000000..e6d651f2
--- /dev/null
+++ b/test/wasm2c/spec/memory64/table_copy_mixed.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/memory64/table_copy_mixed.wast
+;;; ARGS*: --enable-memory64
+(;; STDOUT ;;;
+0/0 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory64/table_grow.txt b/test/wasm2c/spec/memory64/table_grow.txt
index c97a1864..545d8d42 100644
--- a/test/wasm2c/spec/memory64/table_grow.txt
+++ b/test/wasm2c/spec/memory64/table_grow.txt
@@ -2,5 +2,5 @@
;;; STDIN_FILE: third_party/testsuite/proposals/memory64/table_grow.wast
;;; ARGS*: --enable-memory64
(;; STDOUT ;;;
-59/59 tests passed.
+62/62 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/memory_grow.txt b/test/wasm2c/spec/memory_grow.txt
index 8381ed4e..60112aeb 100644
--- a/test/wasm2c/spec/memory_grow.txt
+++ b/test/wasm2c/spec/memory_grow.txt
@@ -1,5 +1,5 @@
;;; TOOL: run-spec-wasm2c
;;; STDIN_FILE: third_party/testsuite/memory_grow.wast
(;; STDOUT ;;;
-84/84 tests passed.
+87/87 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/align.txt b/test/wasm2c/spec/multi-memory/align.txt
new file mode 100644
index 00000000..44bf3901
--- /dev/null
+++ b/test/wasm2c/spec/multi-memory/align.txt
@@ -0,0 +1,6 @@
+;;; TOOL: run-spec-wasm2c
+;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/align.wast
+;;; ARGS*: --enable-multi-memory
+(;; STDOUT ;;;
+48/48 tests passed.
+;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/imports.txt b/test/wasm2c/spec/multi-memory/imports.txt
index b31cef7b..35aab146 100644
--- a/test/wasm2c/spec/multi-memory/imports.txt
+++ b/test/wasm2c/spec/multi-memory/imports.txt
@@ -14,5 +14,5 @@ spectest.print_f64(24)
spectest.print_f64(24)
spectest.print_f64(24)
spectest.print_i32(13)
-37/37 tests passed.
+34/34 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory.txt b/test/wasm2c/spec/multi-memory/memory.txt
index 57013cc7..454d48c8 100644
--- a/test/wasm2c/spec/multi-memory/memory.txt
+++ b/test/wasm2c/spec/multi-memory/memory.txt
@@ -2,5 +2,5 @@
;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory.wast
;;; ARGS*: --enable-multi-memory
(;; STDOUT ;;;
-45/45 tests passed.
+53/53 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/multi-memory/memory_grow.txt b/test/wasm2c/spec/multi-memory/memory_grow.txt
index 3731de5d..7af15912 100644
--- a/test/wasm2c/spec/multi-memory/memory_grow.txt
+++ b/test/wasm2c/spec/multi-memory/memory_grow.txt
@@ -2,5 +2,5 @@
;;; STDIN_FILE: third_party/testsuite/proposals/multi-memory/memory_grow.wast
;;; ARGS*: --enable-multi-memory
(;; STDOUT ;;;
-131/131 tests passed.
+134/134 tests passed.
;;; STDOUT ;;)
diff --git a/test/wasm2c/spec/table_grow.txt b/test/wasm2c/spec/table_grow.txt
index 23ebed3f..327af02d 100644
--- a/test/wasm2c/spec/table_grow.txt
+++ b/test/wasm2c/spec/table_grow.txt
@@ -1,5 +1,5 @@
;;; TOOL: run-spec-wasm2c
;;; STDIN_FILE: third_party/testsuite/table_grow.wast
(;; STDOUT ;;;
-38/38 tests passed.
+41/41 tests passed.
;;; STDOUT ;;)
diff --git a/third_party/testsuite b/third_party/testsuite
-Subproject f3f048661dc1686d556a27d522df901cb747ab4
+Subproject eeb6dac81be81151da0958ed955aba91230c1f2