summaryrefslogtreecommitdiff
path: root/test/float_ops.cpp
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2024-09-05 17:09:52 -0700
committerGitHub <noreply@github.com>2024-09-06 00:09:52 +0000
commit509d18323cc9513b513bebdc0443e3fd416db692 (patch)
tree0aba96ce21fb19700da88f9ab09dd0f02f097249 /test/float_ops.cpp
parent5903ea9bae2d02f31080bed8ea5b71846fd80733 (diff)
downloadbinaryen-509d18323cc9513b513bebdc0443e3fd416db692.tar.gz
binaryen-509d18323cc9513b513bebdc0443e3fd416db692.tar.bz2
binaryen-509d18323cc9513b513bebdc0443e3fd416db692.zip
Avoid conflicts with public rec groups in MinimizeRecGroups (#6911)
As with all type optimizations, MinimizeRecGroups only changes private types, which are the only types that are safe to modify. However, it is important for correctness that MinimimizeRecGroups maintain separate type identities for all types, whether public or private, to ensure that casts that should differentiate two types cannot change behavior. Previously the pass worked exclusively on private types, so there was nothing preventing it from constructing a minimial rec group that happened to have the same shape, and therefore type identity, as a public rec group. #6886 exhibits a fuzzer test case where this happens and changes the behavior of the program. Fix the bug by recording all public rec group shapes and resolve conflicts with these shapes by updating the shape of the conflicting non-public type. Fixes #6886.
Diffstat (limited to 'test/float_ops.cpp')
0 files changed, 0 insertions, 0 deletions