The following passes Miri, but is it sound? In particular, I'm worried about the SharedReadWrite permission being "erased" at some point in the series of pointer casts.
fn main() {
let x = UnsafeCell::new(0);
let x = &x;
let x_ptr: *const UnsafeCell<usize> = x;
let x_ptr = x_ptr.cast::<usize>();
let x_ptr = x_ptr.cast_mut();
let x_ptr = NonNull::new(x_ptr).unwrap();
let x_ptr = x_ptr.as_ptr();
let x_ptr = x_ptr.cast_const();
let x_ptr = x_ptr.cast::<UnsafeCell<usize>>();
let _x = unsafe { &*x_ptr };
}