From e7c4f9da6d4a98f58b6320b5769f653a6bf26d3e Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Wed, 30 Mar 2022 15:54:44 -0700 Subject: [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 --- src/wasm/wasm-validator.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/wasm/wasm-validator.cpp') 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, -- cgit v1.2.3