summaryrefslogtreecommitdiff
path: root/src/binaryen-c.cpp
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-03-03 15:18:36 -0600
committerGitHub <noreply@github.com>2023-03-03 21:18:36 +0000
commite13ad341c86ded9c646b7106e76472d6343156d9 (patch)
tree2ecbbc42381ca9c6cde6e414c91314313d4db625 /src/binaryen-c.cpp
parentdc8f514bfa4617861b51b6cef23af73464d3b650 (diff)
downloadbinaryen-e13ad341c86ded9c646b7106e76472d6343156d9.tar.gz
binaryen-e13ad341c86ded9c646b7106e76472d6343156d9.tar.bz2
binaryen-e13ad341c86ded9c646b7106e76472d6343156d9.zip
Add a fuzzer utility for ensuring types are inhabitable (#5541)
Some valid GC types, such as non-nullable references to bottom heap types and types that contain non-nullable references to themselves, are uninhabitable, meaning it is not possible to construct values of those types. This can cause problems for the fuzzer, which generally needs to be able to construct values of arbitrary types. To simplify things for the fuzzer, introduce a utility for transforming type graphs such that all their types are inhabitable. The utility performs a DFS to find cycles of non-nullable references and breaks those cycles by introducing nullability. The new utility is itself fuzzed in the type fuzzer.
Diffstat (limited to 'src/binaryen-c.cpp')
0 files changed, 0 insertions, 0 deletions