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.