summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-s-parser.cpp
diff options
context:
space:
mode:
authorAlon Zakai (kripken) <alonzakai@gmail.com>2017-05-29 13:49:32 -0700
committerAlon Zakai <alonzakai@gmail.com>2017-06-01 13:17:44 -0700
commit18e83cb152447a07fc0b3fe9c16b2b8c60aab328 (patch)
treefb188a54fc3d33e554f854a9aea8088993d285f0 /src/wasm/wasm-s-parser.cpp
parente0166ea8978928436813a3cf7d3cee73961baa7a (diff)
downloadbinaryen-18e83cb152447a07fc0b3fe9c16b2b8c60aab328.tar.gz
binaryen-18e83cb152447a07fc0b3fe9c16b2b8c60aab328.tar.bz2
binaryen-18e83cb152447a07fc0b3fe9c16b2b8c60aab328.zip
s-expr parsing: handle empty switch
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r--src/wasm/wasm-s-parser.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp
index 22dd36b13..77ca8910d 100644
--- a/src/wasm/wasm-s-parser.cpp
+++ b/src/wasm/wasm-s-parser.cpp
@@ -1340,6 +1340,7 @@ Expression* SExpressionWasmBuilder::makeBreakTable(Element& s) {
while (!s[i]->isList()) {
ret->targets.push_back(getLabel(*s[i++]));
}
+ if (ret->targets.size() == 0) throw ParseException("switch with no targets");
ret->default_ = ret->targets.back();
ret->targets.pop_back();
ret->condition = parseExpression(s[i++]);