diff options
author | Alon Zakai <azakai@google.com> | 2024-02-22 15:39:49 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-22 15:39:49 -0800 |
commit | dabfd5b841619d6846f51ec574561e4d6c899f55 (patch) | |
tree | 1c5a9a80e2a9a590b1ec6f81db31b74bd8187f85 | |
parent | e2420f0d5d82982cd94a6400da812cf7c9818d97 (diff) | |
download | binaryen-dabfd5b841619d6846f51ec574561e4d6c899f55.tar.gz binaryen-dabfd5b841619d6846f51ec574561e4d6c899f55.tar.bz2 binaryen-dabfd5b841619d6846f51ec574561e4d6c899f55.zip |
Fuzzer: Ignore V8 errors on uninitialized non-defaultable locals (#6337)
See #5665 #5599, this is an existing issue and we have a workaround for it
using --dce, but it does not always work. I seem to be seeing this in higher
frequency since landing recent fuzzer improvements, so ignore it.
There is some risk of us missing real bugs here (that we validate and V8
does not), but this is a validation error which is not as serious as a difference
in behavior. And this is a long-standing issue that hasn't bitten us yet.
-rwxr-xr-x | scripts/fuzz_opt.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/scripts/fuzz_opt.py b/scripts/fuzz_opt.py index d3d50b64e..171a246d2 100755 --- a/scripts/fuzz_opt.py +++ b/scripts/fuzz_opt.py @@ -462,6 +462,13 @@ FUZZ_EXEC_CALL_PREFIX = '[fuzz-exec] calling' # --fuzz-exec reports a stack limit using this notation STACK_LIMIT = '[trap stack limit]' +# V8 reports this error in rare cases due to limitations in our handling of non- +# nullable locals in unreachable code, see +# https://github.com/WebAssembly/binaryen/pull/5665 +# https://github.com/WebAssembly/binaryen/issues/5599 +# and also see the --dce workaround below that also links to those issues. +V8_UNINITIALIZED_NONDEF_LOCAL = 'uninitialized non-defaultable local' + # given a call line that includes FUZZ_EXEC_CALL_PREFIX, return the export that # is called @@ -635,6 +642,8 @@ def run_vm(cmd): # strings in this list for known issues (to which more need to be # added as necessary). HOST_LIMIT_PREFIX, + # see comment above on this constant + V8_UNINITIALIZED_NONDEF_LOCAL, ] for issue in known_issues: if issue in output: |