You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix Miri errors for WindowsIter and ExactChunksIter/Mut
Before this commit, running `MIRIFLAGS="-Zmiri-tag-raw-pointers" cargo
miri test` caused Miri to report undefined behavior for code using the
`WindowsIter`, `ExactChunksIter`, and `ExactChunksIterMut` iterators.
This commit fixes the underlying issue. Basically, Miri doesn't like
code which uses a reference to an element to access other elements.
Before this commit, these iterators wrapped the `ElementsBase` and
`ElementsBaseMut` iterators, and they created views from the
references returned by those inner iterators. Accessing elements
within those views (other than the first element) led to the Miri
error, since the view's pointer was derived from a reference to a
single element. Now, the iterators wrap `Baseiter` instead, which
produces raw pointers instead of references.
Although not necessary to satisfy Miri, this commit also changes the
`Windows`, `ExactChunks`, and `ExactChunksMut` producers to wrap raw
views instead of normal views. This avoids potential confusion
regarding which elements are accessible through the views produced by
these producers.
0 commit comments