summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-09 20:15:20 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-09 20:15:20 -0800
commit404846caeaf2f866aeffc3523403c2272e323dac (patch)
tree65be3a415c14048ce6700386d45ccc89d501069e /src/wasm.h
parent0073656f9d1a0f74da798bf3b1890f94e9502517 (diff)
downloadbinaryen-404846caeaf2f866aeffc3523403c2272e323dac.tar.gz
binaryen-404846caeaf2f866aeffc3523403c2272e323dac.tar.bz2
binaryen-404846caeaf2f866aeffc3523403c2272e323dac.zip
handle some switch errors, get the switch testcase passing
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 0afb955a9..c292e6bc6 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1319,21 +1319,20 @@ bool Module::validateFunction(Function *func) {
if (!validateAlignment(curr->align)) valid = false;
}
void visitSwitch(Switch *curr) override {
-std::cerr << "validate switch ";
-curr->doPrint(std::cerr, 0) << "\n";
std::set<Name> inTable;
for (auto target : curr->targets) {
if (target.is()) {
inTable.insert(target);
-std::cerr << "in table: " << target << '\n';
}
}
for (auto& c : curr->cases) {
-std::cerr << "chack: " << c.name.is() << " : " << (c.name.is() ? c.name.str : "ASSDAS") << '\n';
if (c.name.is() && inTable.find(c.name) == inTable.end()) {
valid = false;
}
}
+ if (curr->default_.is() && inTable.find(curr->default_) == inTable.end()) {
+ valid = false;
+ }
}
bool validateAlignment(size_t align) {