# Static rustc_lint_defs::builtin::WRITES_THROUGH_IMMUTABLE_POINTER

source ·

    pub static WRITES_THROUGH_IMMUTABLE_POINTER: &Lint

Expand description

The `writes_through_immutable_pointer` lint detects writes through pointers derived from shared references.

#### §Example

ⓘ

    #![feature(const_mut_refs)]
    const WRITE_AFTER_CAST: () = unsafe {
        let mut x = 0;
        let ptr = &x as *const i32 as *mut i32;
        *ptr = 0;
    };

{{produces}}

#### §Explanation

Shared references are immutable (when there is no `UnsafeCell` involved), and writing through them or through pointers derived from them is Undefined Behavior. The compiler recently learned to detect such Undefined Behavior during compile-time evaluation, and in the future this will raise a hard error.