diff options
author | Alon Zakai <azakai@google.com> | 2023-05-05 09:55:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-05 16:55:23 +0000 |
commit | 515690c397c772f6eb0f9747c51fab69046c606b (patch) | |
tree | 53e227fa65a4dbd3d0c3ac6a638216643ec5a394 /test/heap-types.wast.fromBinary | |
parent | 426070cace6a3a2e5e95656623c325a53a4b924b (diff) | |
download | binaryen-515690c397c772f6eb0f9747c51fab69046c606b.tar.gz binaryen-515690c397c772f6eb0f9747c51fab69046c606b.tar.bz2 binaryen-515690c397c772f6eb0f9747c51fab69046c606b.zip |
[Wasm GC] Automatically make RefCast heap types more precise (#5704)
We already did this for nullablilty, and so for the same reasons we should do it
for heap types as well. Also, I realized that doing so would solve #5703, which
is the new test added for TypeRefining here.
The fuzz bug solved here is that our analysis of struct gets/sets will skip
copy operations - a read from a field that is written into it. And we skip
fallthrough values while doing so, since it doesn't matter if the read goes
through an if arm or a cast. An if would automatically get a more precise
type during refinalize, so this PR does the same for a cast basically.
Fixes #5703
Diffstat (limited to 'test/heap-types.wast.fromBinary')
-rw-r--r-- | test/heap-types.wast.fromBinary | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/heap-types.wast.fromBinary b/test/heap-types.wast.fromBinary index e69cf99b1..99637f92b 100644 --- a/test/heap-types.wast.fromBinary +++ b/test/heap-types.wast.fromBinary @@ -324,7 +324,7 @@ ) ) (drop - (ref.cast null $struct.B + (ref.cast null none (ref.null none) ) ) |