use std::alloc::{Layout, alloc, dealloc}; fn main() { unsafe { let x = alloc(Layout::from_size_align_unchecked(1, 1)); let ptr1 = (&mut *x) as *mut u8; let ptr2 = (&mut *ptr1) as *mut u8; // Invalidate ptr2 by writing to ptr1. ptr1.write(0); // Deallocate through ptr2. dealloc(ptr2, Layout::from_size_align_unchecked(1, 1)); //~^ERROR: /deallocation .* tag does not exist in the borrow stack/ } }