summaryrefslogtreecommitdiff
path: root/src/wasm-binary.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-29 14:59:10 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-29 15:03:32 -0700
commitaf6b1a77673b1c49f4501918385bd463c50cb28b (patch)
treec3a7cc43a52a5b006d2ae6acd9470c18a778d15d /src/wasm-binary.h
parent8ac323bb58c0e1891dea6492160939eb1b6bb1d2 (diff)
downloadbinaryen-af6b1a77673b1c49f4501918385bd463c50cb28b.tar.gz
binaryen-af6b1a77673b1c49f4501918385bd463c50cb28b.tar.bz2
binaryen-af6b1a77673b1c49f4501918385bd463c50cb28b.zip
validate in binaryen shell and on wasm binaries, and fix type checking
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r--src/wasm-binary.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 0bd86ffb6..89073b8be 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -31,6 +31,7 @@
#include "asm_v_wasm.h"
#include "wasm-builder.h"
#include "ast_utils.h"
+#include "wasm-validator.h"
namespace wasm {
@@ -1187,6 +1188,10 @@ public:
}
processFunctions();
+
+ if (!WasmValidator().validate(wasm)) {
+ abort();
+ }
}
bool more() {
@@ -1727,6 +1732,7 @@ public:
curr->name = getBreakName(getU32LEB());
if (code == BinaryConsts::BrIf) curr->condition = popExpression();
if (arity == 1) curr->value = popExpression();
+ curr->finalize();
}
void visitSwitch(Switch *curr) {
if (debug) std::cerr << "zz node: Switch" << std::endl;