diff options
author | Alon Zakai (kripken) <alonzakai@gmail.com> | 2017-05-29 14:11:22 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2017-06-01 13:17:44 -0700 |
commit | a13a4ea6d71d2bd06bc906ab5d26f3323c8d3cf6 (patch) | |
tree | 401e6fa45f7c5e0be16714d4246e60d3ea47e706 /src/wasm/wasm-s-parser.cpp | |
parent | 989c5295deebe71e4bf80e6cc5ae4f334134f9ea (diff) | |
download | binaryen-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.cpp | 2 |
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()); } |