summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wasm.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 3b318c6ee..a71e09d19 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -974,7 +974,15 @@ public:
void finalize() {
assert(ifTrue);
if (ifFalse) {
- type = getReachableWasmType(ifTrue->type, ifFalse->type);
+ if (ifTrue->type == ifFalse->type) {
+ type = ifTrue->type;
+ } else if (isConcreteWasmType(ifTrue->type) && ifFalse->type == unreachable) {
+ type = ifTrue->type;
+ } else if (isConcreteWasmType(ifFalse->type) && ifTrue->type == unreachable) {
+ type = ifFalse->type;
+ } else {
+ type = none;
+ }
}
}
};