diff options
author | Alon Zakai <azakai@google.com> | 2024-04-16 10:09:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-16 10:09:17 -0700 |
commit | e29d77848b89846cf3519491fee581b507e3b194 (patch) | |
tree | e4fa41f2c63638ba30aeb6f7ec84703bd0555a0e /src/wasm/wasm-ir-builder.cpp | |
parent | e4608772910d4d879b0a4783bacba3b4890b828c (diff) | |
download | binaryen-e29d77848b89846cf3519491fee581b507e3b194.tar.gz binaryen-e29d77848b89846cf3519491fee581b507e3b194.tar.bz2 binaryen-e29d77848b89846cf3519491fee581b507e3b194.zip |
CoalesceLocals: ReFinalize when we refine a type (#6502)
The code had a different workaround, namely to add a block with an explicit
type to avoid changing the type at all (i.e. the block declared the original
type of the thing we replaced, not the refined type). But by adding a block we
can end up with an invalid pop, as the fuzzer found, see the EH testcase here.
To fix this, use the usual workaround of just running ReFinalize. That is simpler
and also improves the code while we do it. It does add more work, but this is
likely a very rare situation anyhow.
Diffstat (limited to 'src/wasm/wasm-ir-builder.cpp')
0 files changed, 0 insertions, 0 deletions