diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-09 20:15:20 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-09 20:15:20 -0800 |
commit | 404846caeaf2f866aeffc3523403c2272e323dac (patch) | |
tree | 65be3a415c14048ce6700386d45ccc89d501069e /src/wasm.h | |
parent | 0073656f9d1a0f74da798bf3b1890f94e9502517 (diff) | |
download | binaryen-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.h | 7 |
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) { |