error: Undefined Behavior: deallocating while item is protected: [SharedReadWrite for (call ID)] --> RUSTLIB/alloc/src/alloc.rs:LL:CC | LL | unsafe { __rust_dealloc(ptr, layout.size(), layout.align()) } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ deallocating while item is protected: [SharedReadWrite for (call ID)] | = help: this indicates a potential bug in the program: it performed an invalid operation, but the rules it violated are still experimental = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information = note: inside `std::alloc::dealloc` at RUSTLIB/alloc/src/alloc.rs:LL:CC = note: inside `::deallocate` at RUSTLIB/alloc/src/alloc.rs:LL:CC = note: inside `alloc::alloc::box_free::, std::alloc::Global>` at RUSTLIB/alloc/src/alloc.rs:LL:CC = note: inside `std::ptr::drop_in_place::>> - shim(Some(std::boxed::Box>))` at RUSTLIB/core/src/ptr/mod.rs:LL:CC = note: inside `std::mem::drop::>>` at RUSTLIB/core/src/mem/mod.rs:LL:CC note: inside closure at $DIR/deallocate_against_barrier2.rs:LL:CC --> $DIR/deallocate_against_barrier2.rs:LL:CC | LL | drop(unsafe { Box::from_raw(raw) }); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: inside `<[closure@$DIR/deallocate_against_barrier2.rs:LL:CC] as std::ops::FnOnce<(&std::cell::Cell,)>>::call_once - shim` at RUSTLIB/core/src/ops/function.rs:LL:CC note: inside `inner` at $DIR/deallocate_against_barrier2.rs:LL:CC --> $DIR/deallocate_against_barrier2.rs:LL:CC | LL | f(x) | ^^^^ note: inside `main` at $DIR/deallocate_against_barrier2.rs:LL:CC --> $DIR/deallocate_against_barrier2.rs:LL:CC | LL | / inner(Box::leak(Box::new(Cell::new(0))), |x| { LL | | let raw = x as *const _ as *mut Cell; LL | | drop(unsafe { Box::from_raw(raw) }); LL | | }); | |______^ note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace error: aborting due to previous error