diff options
author | Alon Zakai <azakai@google.com> | 2022-03-30 15:54:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-30 15:54:44 -0700 |
commit | e7c4f9da6d4a98f58b6320b5769f653a6bf26d3e (patch) | |
tree | 917176abd4f7913cb831ca0567d597ea817c377e /src/wasm/wasm-validator.cpp | |
parent | 247f4c20a1eea63ebe77c64e1681081b5b5de302 (diff) | |
download | binaryen-e7c4f9da6d4a98f58b6320b5769f653a6bf26d3e.tar.gz binaryen-e7c4f9da6d4a98f58b6320b5769f653a6bf26d3e.tar.bz2 binaryen-e7c4f9da6d4a98f58b6320b5769f653a6bf26d3e.zip |
[Wasm GC] Fix non-nullable tuples (#4555)
Apply the same logic to tuple fields as we do for all other fields,
when checking whether a non-nullable value is valid.
Fixes #4554
Diffstat (limited to 'src/wasm/wasm-validator.cpp')
-rw-r--r-- | src/wasm/wasm-validator.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp index 86fc4811b..8d35543fc 100644 --- a/src/wasm/wasm-validator.cpp +++ b/src/wasm/wasm-validator.cpp @@ -2728,11 +2728,11 @@ void FunctionValidator::visitFunction(Function* curr) { shouldBeTrue(result.isConcrete(), curr, "results must be concretely typed"); } for (const auto& var : curr->vars) { - if (var.isRef() && getModule()->features.hasGCNNLocals()) { - continue; - } features |= var.getFeatures(); - shouldBeTrue(var.isDefaultable(), var, "vars must be defaultable"); + bool valid = getModule()->features.hasGCNNLocals() + ? var.isDefaultableOrNonNullable() + : var.isDefaultable(); + shouldBeTrue(valid, var, "vars must be defaultable"); } shouldBeTrue(features <= getModule()->features, curr->name, |