diff options
author | Alon Zakai <azakai@google.com> | 2024-03-26 11:01:54 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-26 11:01:54 -0700 |
commit | 19f8cc706e823f97554f5e4e9167060061d32a41 (patch) | |
tree | a8860b47bc0a4b97e172f16a05c760de022a40ad /src/tools/fuzzing/random.cpp | |
parent | 431e858c4f4ac0343914eb42196f8bb64ac99023 (diff) | |
download | binaryen-19f8cc706e823f97554f5e4e9167060061d32a41.tar.gz binaryen-19f8cc706e823f97554f5e4e9167060061d32a41.tar.bz2 binaryen-19f8cc706e823f97554f5e4e9167060061d32a41.zip |
Add "interposition" to the fuzzer's mutate() method (#6427)
Before this PR we only mutated by replacing an expression with another, which
replaced all the children. With this PR we also do these two patterns:
(A
(B)
(C)
)
=> ;; keep children, replace A
(block
(drop (B))
(drop (C))
(NEW)
)
,
(D
(A
(B)
(C)
)
)
=> ;; keep A, replace it in the parent
(D
(block
(drop
(A
(B)
(C)
)
)
(NEW)
)
)
We also try to replace onto the new D (either A itself, or A's children).
Diffstat (limited to 'src/tools/fuzzing/random.cpp')
0 files changed, 0 insertions, 0 deletions