Commit e5b6ca1
authored
Rollup merge of rust-lang#103996 - SUPERCILEX:docs, r=RalfJung
Add small clarification around using pointers derived from references
r? `@RalfJung`
One question about your example from rust-lang/libs-team#122: at what point does UB arise? If writing 0 does not cause UB and the reference `x` is never read or written to (explicitly or implicitly by being wrapped in another data structure) after the call to `foo`, does UB only arise when dropping the value? I don't really get that since I thought references were always supposed to point to valid data?
```rust
fn foo(x: &mut NonZeroI32) {
let ptr = x as *mut NonZeroI32;
unsafe { ptr.cast::<i32>().write(0); } // no UB here
// What now? x is considered garbage when?
}
```File tree
0 file changed
+0
-0
lines changed0 file changed
+0
-0
lines changed
0 commit comments