summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2023-01-26 16:43:35 -0800
committerGitHub <noreply@github.com>2023-01-26 16:43:35 -0800
commit81c136964750e64157963ef41a596c8ae91fb98c (patch)
tree5e24a1e33ea356c333a43fe8e4d77297f1663524 /src
parent0e4712f8dbbc43c6c55041e2359f24aa42ae0fdb (diff)
downloadbinaryen-81c136964750e64157963ef41a596c8ae91fb98c.tar.gz
binaryen-81c136964750e64157963ef41a596c8ae91fb98c.tar.bz2
binaryen-81c136964750e64157963ef41a596c8ae91fb98c.zip
[Wasm GC] Refinalize fuzz fix in OptimizeInstructions cast optimizations (#5460)
Diffstat (limited to 'src')
-rw-r--r--src/passes/OptimizeInstructions.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp
index 6537e9b56..41f7a9e11 100644
--- a/src/passes/OptimizeInstructions.cpp
+++ b/src/passes/OptimizeInstructions.cpp
@@ -1566,11 +1566,17 @@ struct OptimizeInstructions
if (auto* iff = ref->dynCast<If>()) {
if (iff->ifFalse) {
if (iff->ifTrue->type.isNull()) {
+ if (ref->type != iff->ifFalse->type) {
+ refinalize = true;
+ }
ref = builder.makeSequence(builder.makeDrop(iff->condition),
iff->ifFalse);
return false;
}
if (iff->ifFalse->type.isNull()) {
+ if (ref->type != iff->ifTrue->type) {
+ refinalize = true;
+ }
ref = builder.makeSequence(builder.makeDrop(iff->condition),
iff->ifTrue);
return false;