Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Recently a lot of the unsafe code in Scryer was improved in #2393, so I did another pass with Miri on the tests that were previously blocked on
arena.rs
andstreams.rs
(which were improved since then). All tests that were previously blocked by UB instreams.rs
are now blocked by UB inarena.rs
instead (with the exception ofpstr_iter_tests
which is now blocked onatom_table.rs
UB). All of the tests that are blocked onarena.rs
UB are blocked on the transmute in theptr_to_allocated()
function, in every case trying to allocate a stream, usually when creating an instance ofMachine
.This is good because if this is resolved then all of those tests will go deeper and maybe even pass. I don't know what exactly is the reason for Miri pointing UB here, but it's probably because somewhere in all the transmutes and casts back and forth between
AllocSlab
andTypedAllocSlab
it's losing provenance information.