diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-09-21 19:33:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-21 19:33:11 -0700 |
commit | 8be82627c6a8cbded0dab67ad1f31906a54ba78c (patch) | |
tree | b7b14f1899ffe39a7562007474a58948685146c8 /src/passes/OptimizeInstructions.cpp | |
parent | 7292ef9c863a0766c697cc0a77516447ff652820 (diff) | |
parent | 740e36eab98d679387fea60cd642591a69ce809f (diff) | |
download | binaryen-8be82627c6a8cbded0dab67ad1f31906a54ba78c.tar.gz binaryen-8be82627c6a8cbded0dab67ad1f31906a54ba78c.tar.bz2 binaryen-8be82627c6a8cbded0dab67ad1f31906a54ba78c.zip |
Merge pull request #703 from WebAssembly/spec-update
Spec update - get us passing the 0xc spec tests (minus stacky stuff)
Diffstat (limited to 'src/passes/OptimizeInstructions.cpp')
-rw-r--r-- | src/passes/OptimizeInstructions.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp index 669a19b89..48639a341 100644 --- a/src/passes/OptimizeInstructions.cpp +++ b/src/passes/OptimizeInstructions.cpp @@ -55,15 +55,20 @@ struct PatternDatabase { input = strdup( #include "OptimizeInstructions.wast.processed" ); - SExpressionParser parser(input); - Element& root = *parser.root; - SExpressionWasmBuilder builder(wasm, *root[0]); - // parse module form - auto* func = wasm.getFunction("patterns"); - auto* body = func->body->cast<Block>(); - for (auto* item : body->list) { - auto* pair = item->cast<Block>(); - patternMap[pair->list[0]->_id].emplace_back(pair->list[0], pair->list[1]); + try { + SExpressionParser parser(input); + Element& root = *parser.root; + SExpressionWasmBuilder builder(wasm, *root[0]); + // parse module form + auto* func = wasm.getFunction("patterns"); + auto* body = func->body->cast<Block>(); + for (auto* item : body->list) { + auto* pair = item->cast<Block>(); + patternMap[pair->list[0]->_id].emplace_back(pair->list[0], pair->list[1]); + } + } catch (ParseException& p) { + p.dump(std::cerr); + Fatal() << "error in parsing wasm binary"; } } |