diff options
author | Alon Zakai <azakai@google.com> | 2023-05-04 10:24:49 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-04 10:24:49 -0700 |
commit | 09fe432c0d3cb7562767a8e06d4e918beb5990c2 (patch) | |
tree | e7d1357f4678e76f2d22290ea4debc21b03a2414 /src/wasm/wasm.cpp | |
parent | e9b8e53812610e43260f6db4a05fd12d96a3f449 (diff) | |
download | binaryen-09fe432c0d3cb7562767a8e06d4e918beb5990c2.tar.gz binaryen-09fe432c0d3cb7562767a8e06d4e918beb5990c2.tar.bz2 binaryen-09fe432c0d3cb7562767a8e06d4e918beb5990c2.zip |
Fix DeadArgumentElimination return value opts on nesting+recursion (#5701)
The testcase here has a recursive call that is also nested in itself, something
like
(return
(call $me
(return
..
This found a bug in our return value removal logic. When we remove a return
value we both modify call sites (to add drops) and modify returns
(to remove their values). One of those uses pointers into the IR which the other
invalidated, so the order of the two matters. This PR just reorders that code to
fix the bug.
Diffstat (limited to 'src/wasm/wasm.cpp')
0 files changed, 0 insertions, 0 deletions