Confirm that our uses of addr_of! are sound in light of rust-lang/rust#129653. As of this writing, it appears that there are two uses:
One is Unalign::get_ptr:
|
pub const fn get_ptr(&self) -> *const T { |
|
ptr::addr_of!(self.0) |
|
} |
One is in trailing_field_offset!:
|
let field = unsafe { |
|
$crate::macro_util::core_reexport::ptr::addr_of!((*ptr).$trailing_field_name) |
|
}; |
The Unalign::get_ptr one may be problematic if the user uses the returned *const T to perform mutation. We may need to clarify in the safety docs on that method that the returned pointer is read-only.
Confirm that our uses of
addr_of!are sound in light of rust-lang/rust#129653. As of this writing, it appears that there are two uses:One is
Unalign::get_ptr:zerocopy/src/wrappers.rs
Lines 233 to 235 in b8c3178
One is in
trailing_field_offset!:zerocopy/src/macro_util.rs
Lines 187 to 189 in b8c3178
The
Unalign::get_ptrone may be problematic if the user uses the returned*const Tto perform mutation. We may need to clarify in the safety docs on that method that the returned pointer is read-only.