summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wasm/wasm-validator.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp
index f492c7110..450a7b956 100644
--- a/src/wasm/wasm-validator.cpp
+++ b/src/wasm/wasm-validator.cpp
@@ -460,9 +460,9 @@ private:
Type(Type::unreachable),
curr,
"return_call* should have unreachable type");
- shouldBeEqual(
- getFunction()->getResults(),
+ shouldBeSubType(
sig.results,
+ getFunction()->getResults(),
curr,
"return_call* callee return type must match caller return type");
} else {
@@ -798,9 +798,11 @@ void FunctionValidator::visitCallIndirect(CallIndirect* curr) {
if (curr->target->type != Type::unreachable) {
auto* table = getModule()->getTableOrNull(curr->table);
shouldBeTrue(!!table, curr, "call-indirect table must exist");
- shouldBeTrue(table->type.isFunction(),
- curr,
- "call-indirect table must be of function type.");
+ if (table) {
+ shouldBeTrue(table->type.isFunction(),
+ curr,
+ "call-indirect table must be of function type.");
+ }
}
validateCallParamsAndResult(curr, curr->sig);