summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-s-parser.cpp
diff options
context:
space:
mode:
authorAlon Zakai (kripken) <alonzakai@gmail.com>2017-05-29 14:11:22 -0700
committerAlon Zakai <alonzakai@gmail.com>2017-06-01 13:17:44 -0700
commita13a4ea6d71d2bd06bc906ab5d26f3323c8d3cf6 (patch)
tree401e6fa45f7c5e0be16714d4246e60d3ea47e706 /src/wasm/wasm-s-parser.cpp
parent989c5295deebe71e4bf80e6cc5ae4f334134f9ea (diff)
downloadbinaryen-a13a4ea6d71d2bd06bc906ab5d26f3323c8d3cf6.tar.gz
binaryen-a13a4ea6d71d2bd06bc906ab5d26f3323c8d3cf6.tar.bz2
binaryen-a13a4ea6d71d2bd06bc906ab5d26f3323c8d3cf6.zip
handle duplicate function types in s-expr parsing
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r--src/wasm/wasm-s-parser.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp
index 10d4c3f17..831ad41c3 100644
--- a/src/wasm/wasm-s-parser.cpp
+++ b/src/wasm/wasm-s-parser.cpp
@@ -409,6 +409,7 @@ void SExpressionWasmBuilder::preParseFunctionType(Element& s) {
if (need) {
functionType->name = Name::fromInt(wasm.functionTypes.size());
functionTypeNames.push_back(functionType->name);
+ if (wasm.getFunctionTypeOrNull(functionType->name)) throw ParseException("duplicate function type", s.line, s.col);
wasm.addFunctionType(functionType.release());
}
}
@@ -1843,6 +1844,7 @@ void SExpressionWasmBuilder::parseType(Element& s) {
type->name = Name::fromInt(wasm.functionTypes.size());
}
functionTypeNames.push_back(type->name);
+ if (wasm.getFunctionTypeOrNull(type->name)) throw ParseException("duplicate function type", s.line, s.col);
wasm.addFunctionType(type.release());
}