730cd27248
This tries to clarify exactly why an access is not valid by printing what memory range the access was over, which in combination with tag-tracking may help a user figure out the source of the problem.
9 lines
336 B
Rust
9 lines
336 B
Rust
fn main() {
|
|
let target = 42;
|
|
// Make sure raw ptr with raw tag cannot mutate frozen location without breaking the shared ref.
|
|
let r#ref = ⌖ // freeze
|
|
let ptr = r#ref as *const _ as *mut _; // raw ptr, with raw tag
|
|
unsafe { *ptr = 42; } //~ ERROR only grants SharedReadOnly permission
|
|
let _val = *r#ref;
|
|
}
|