about summary refs log tree commit diff
path: root/src/tools/miri/tests/pass/zst_variant_drop.rs
blob: 3da6959b221ca9488663a6d8983e1f2ed89ac229 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct Foo;
impl Drop for Foo {
    fn drop(&mut self) {
        unsafe {
            FOO = true;
        }
    }
}

static mut FOO: bool = false;

enum Bar {
    A(#[allow(dead_code)] Box<i32>),
    B(Foo),
}

fn main() {
    assert!(unsafe { !FOO });
    drop(Bar::A(Box::new(42)));
    assert!(unsafe { !FOO });
    drop(Bar::B(Foo));
    assert!(unsafe { FOO });
}