diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-09-30 09:15:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-30 09:15:48 -0700 |
commit | 2a543b48db250ea9cd7172b6db9a0b8d3657475a (patch) | |
tree | 1bc6866bf79eb2f661345bb04e3fa49c857311f5 | |
parent | a82528f17feba6b1c34794c645ea5c78892a57d0 (diff) | |
download | binaryen-2a543b48db250ea9cd7172b6db9a0b8d3657475a.tar.gz binaryen-2a543b48db250ea9cd7172b6db9a0b8d3657475a.tar.bz2 binaryen-2a543b48db250ea9cd7172b6db9a0b8d3657475a.zip |
validate drop (#712)
-rw-r--r-- | src/wasm-validator.h | 7 | ||||
-rw-r--r-- | test/passes/vacuum.txt | 16 | ||||
-rw-r--r-- | test/passes/vacuum.wast | 6 |
3 files changed, 13 insertions, 16 deletions
diff --git a/src/wasm-validator.h b/src/wasm-validator.h index 3616313d3..3c580ce51 100644 --- a/src/wasm-validator.h +++ b/src/wasm-validator.h @@ -303,12 +303,7 @@ public: } void visitDrop(Drop* curr) { - // TODO: assert on this, when tests pass - if (getenv("BINARYEN_WARN_DROP")) { - if (!(isConcreteWasmType(curr->value->type) || curr->value->type == unreachable)) { - std::cerr << "warning: bad drop " << curr << " in " << (getFunction() ? getFunction()->name : Name("?")) << '\n'; - } - } + shouldBeTrue(isConcreteWasmType(curr->value->type) || curr->value->type == unreachable, curr, "can only drop a valid value"); } void visitReturn(Return* curr) { diff --git a/test/passes/vacuum.txt b/test/passes/vacuum.txt index 2639dee5d..0c2feeb09 100644 --- a/test/passes/vacuum.txt +++ b/test/passes/vacuum.txt @@ -145,17 +145,17 @@ ) (func $if-drop (type $3) (result i32) (block $out - (drop - (if - (call $if-drop) + (if + (call $if-drop) + (drop (call $int) - (br $out) ) + (br $out) ) - (drop - (if - (call $if-drop) - (br $out) + (if + (call $if-drop) + (br $out) + (drop (call $int) ) ) diff --git a/test/passes/vacuum.wast b/test/passes/vacuum.wast index 9095a40f4..05a8611c5 100644 --- a/test/passes/vacuum.wast +++ b/test/passes/vacuum.wast @@ -302,13 +302,15 @@ (func $if-drop (result i32) (block $out (drop - (if (call $if-drop) + (if i32 + (call $if-drop) (call $int) (br $out) ) ) (drop - (if (call $if-drop) + (if i32 + (call $if-drop) (br $out) (call $int) ) |