3 // ignore-wasm32-bare compiled with panic=abort by default
5 // Check that values are not leaked when a dtor panics (#14875)
7 use std::panic::{self, UnwindSafe};
9 struct SetInnerOnDrop<'a>(&'a mut bool);
11 impl<'a> UnwindSafe for SetInnerOnDrop<'a> {}
13 impl<'a> Drop for SetInnerOnDrop<'a> {
20 impl Drop for PanicOnDrop {
27 let mut set_on_drop = false;
29 let set_inner_on_drop = SetInnerOnDrop(&mut set_on_drop);
30 let _ = panic::catch_unwind(|| {
31 let _set_inner_on_drop = set_inner_on_drop;
32 let _panic_on_drop = PanicOnDrop;