-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cranelift-fuzzgen: Difference in interpreter and x64 execution #4875
Comments
The clif test case printed in this bug report is also not runnable which is interesting:
I suspect this is a separate issue with the clif printer, since the actual code did run in both the interpreter and the backend. Relevant lines in
|
Minimized this to:
|
Although this isn't relevant to the fuzz bug, I'm actually kind of worried about this: the definition of |
Neither Wasmtime nor cg-clif use these flags under any circumstances. From discussion on bytecodealliance#3060 I see it's long been unclear what purpose these flags served. Fixes bytecodealliance#3060, fixes bytecodealliance#4406, and fixes bytecodealliance#4875... by deleting all the code that could have been buggy. This changes the cranelift-fuzzgen input format by removing some IntCC options, so I've gone ahead and enabled I128 icmp tests at the same time. Since only the of/nof cases were failing before, I expect these to work.
Yeah that is really weird. I won't be able to properly look into this until the weekend, but here's my thoughts: I think this is either a bug in the frontend or the inst printer. We don't directly emit aliases in fuzzgen, we always use variables for all operations and let the frontend figure it out. I think we run the verifier via the JIT on all inputs (I had a quick look and I don't see us disable it anywhere, ill have to double check), so at least the verifier thought this was ok? But once printed its no longer ok, that's what initially made me suspect this was a inst printer issue. |
* cranelift: Remove of/nof overflow flags from icmp Neither Wasmtime nor cg-clif use these flags under any circumstances. From discussion on #3060 I see it's long been unclear what purpose these flags served. Fixes #3060, fixes #4406, and fixes #4875... by deleting all the code that could have been buggy. This changes the cranelift-fuzzgen input format by removing some IntCC options, so I've gone ahead and enabled I128 icmp tests at the same time. Since only the of/nof cases were failing before, I expect these to work. * Restore trapif tests It's still useful to validate that iadd_ifcout's iflags result can be forwarded correctly to trapif, and for that purpose it doesn't really matter what condition code is checked.
https://oss-fuzz.com/testcase-detail/5189810368675840 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=51027
Test case input
input.gz
`cargo +nightly fuzz fmt` output
Stack trace or other relevant details
The text was updated successfully, but these errors were encountered: