diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-05-13 10:52:03 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-05-13 11:17:50 -0700 |
commit | 377f1f661d373afe5770d1ff0d3a4772a71ef893 (patch) | |
tree | c061a5f4149e028f6792ecb1ac4a014406690c80 /src | |
parent | 7861d1558490df98febd4b6498f9bec0b64722ad (diff) | |
download | binaryen-377f1f661d373afe5770d1ff0d3a4772a71ef893.tar.gz binaryen-377f1f661d373afe5770d1ff0d3a4772a71ef893.tar.bz2 binaryen-377f1f661d373afe5770d1ff0d3a4772a71ef893.zip |
fix spurious validation errors on unreachable types
Diffstat (limited to 'src')
-rw-r--r-- | src/wasm-validator.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/wasm-validator.h b/src/wasm-validator.h index 3d9693421..7315ba4e5 100644 --- a/src/wasm-validator.h +++ b/src/wasm-validator.h @@ -88,7 +88,9 @@ public: noteBreak(curr->default_, curr->value); } void visitSetLocal(SetLocal *curr) { - shouldBeEqual(curr->type, curr->value->type, curr, "set_local type must be correct"); + if (curr->value->type != unreachable) { + shouldBeEqual(curr->type, curr->value->type, curr, "set_local type must be correct"); + } } void visitLoad(Load *curr) { validateAlignment(curr->align); @@ -113,9 +115,9 @@ public: case Trunc: case Nearest: case Sqrt: { - //if (curr->value->type != unreachable) { + if (curr->value->type != unreachable) { shouldBeEqual(curr->value->type, curr->type, curr, "non-conversion unaries must return the same type"); - //} + } break; } case EqZ: { |