diff options
Diffstat (limited to 'src/wasm/wasm-validator.cpp')
-rw-r--r-- | src/wasm/wasm-validator.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp index a191d2bdd..9994adf1e 100644 --- a/src/wasm/wasm-validator.cpp +++ b/src/wasm/wasm-validator.cpp @@ -3877,6 +3877,14 @@ static void validateTables(Module& module, ValidationInfo& info) { segment->type.isNullable(), "elem", "Non-nullable reference types are not yet supported for tables"); + auto typeFeats = segment->type.getFeatures(); + if (!info.shouldBeTrue( + segment->type == funcref || typeFeats <= module.features, + "elem", + "element segment type requires additional features")) { + info.getStream(nullptr) + << getMissingFeaturesList(module, typeFeats) << '\n'; + } bool isPassive = !segment->table.is(); if (isPassive) { |