diff options
author | Alon Zakai <azakai@google.com> | 2023-01-26 16:43:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-26 16:43:35 -0800 |
commit | 81c136964750e64157963ef41a596c8ae91fb98c (patch) | |
tree | 5e24a1e33ea356c333a43fe8e4d77297f1663524 /src | |
parent | 0e4712f8dbbc43c6c55041e2359f24aa42ae0fdb (diff) | |
download | binaryen-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.cpp | 6 |
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; |