summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-s-parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r--src/wasm/wasm-s-parser.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp
index 9e16d34e6..8e74820a9 100644
--- a/src/wasm/wasm-s-parser.cpp
+++ b/src/wasm/wasm-s-parser.cpp
@@ -2858,7 +2858,11 @@ Expression* SExpressionWasmBuilder::makeRethrow(Element& s) {
Expression* SExpressionWasmBuilder::makeTupleMake(Element& s) {
auto ret = allocator.alloc<TupleMake>();
- parseCallOperands(s, 1, s.size(), ret);
+ size_t arity = std::stoll(s[1]->toString());
+ if (arity != s.size() - 2) {
+ throw SParseException("unexpected number of elements", s, *s[1]);
+ }
+ parseCallOperands(s, 2, s.size(), ret);
ret->finalize();
return ret;
}