summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-05-13 10:52:03 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-05-13 11:17:50 -0700
commit377f1f661d373afe5770d1ff0d3a4772a71ef893 (patch)
treec061a5f4149e028f6792ecb1ac4a014406690c80 /src
parent7861d1558490df98febd4b6498f9bec0b64722ad (diff)
downloadbinaryen-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.h8
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: {