summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-validator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-validator.cpp')
-rw-r--r--src/wasm/wasm-validator.cpp8
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) {