Function bitflags::__core::ptr::read_volatile
[−]
[src]
pub unsafe fn read_volatile<T>(src: *const T) -> T
Unstable (
volatile
): recently added
Performs a volatile read of the value from src
without moving it. This
leaves the memory in src
unchanged.
Volatile operations are intended to act on I/O memory, and are guaranteed to not be elided or reordered by the compiler across other volatile operations. See the LLVM documentation on [volatile].
Safety
Beyond accepting a raw pointer, this is unsafe because it semantically
moves the value out of src
without preventing further usage of src
.
If T
is not Copy
, then care must be taken to ensure that the value at
src
is not used before the data is overwritten again (e.g. with write
,
zero_memory
, or copy_memory
). Note that *src = foo
counts as a use
because it will attempt to drop the value previously at *src
.