diff options
author | Thomas Lively <tlively@google.com> | 2022-11-17 13:30:47 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-17 13:30:47 -0800 |
commit | 5f5c70255cfa917efee9855ce1f8340b017e0adb (patch) | |
tree | fd52430526a6dcf3ef9aa57960cde0b646cb8af4 /test/lit/help/wasm2js.test | |
parent | ec53f4b2d5b0d52ae703c5b696ecf052ad5fffbb (diff) | |
download | binaryen-5f5c70255cfa917efee9855ce1f8340b017e0adb.tar.gz binaryen-5f5c70255cfa917efee9855ce1f8340b017e0adb.tar.bz2 binaryen-5f5c70255cfa917efee9855ce1f8340b017e0adb.zip |
Fix isorecursive canonicalization (#5269)
Fixes a longstanding problem with isorecursive canonicalization that only showed
up in MacOS and occasionally Windows builds. The problem was that
`RecGroupEquator` was not quite correct in the presence of self-references in
rec groups. Specifically, `RecGroupEquator` did not differentiate between
instances of the same type appearing across two rec groups where the type was a
self-reference in one group but not in the other.
The reason this only showed up occasionally on some platforms was that this bug
could only cause incorrect behavior if two groups that would incorrectly be
compared as equal were hashed into the same bucket of a hash map. Apparently the
hash map used on Linux never hashes the two problematic groups into the same
bucket.
Diffstat (limited to 'test/lit/help/wasm2js.test')
0 files changed, 0 insertions, 0 deletions