summaryrefslogtreecommitdiffstats
path: root/src/test/ui/issues/issue-4735.rs
blob: 3ea4b01cd2bbedf6af7fabe71f8bbc4bc024597c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// run-pass
// pretty-expanded FIXME #23616

use std::mem::transmute;

struct NonCopyable(*const u8);

impl Drop for NonCopyable {
    fn drop(&mut self) {
        let NonCopyable(p) = *self;
        let _v = unsafe { transmute::<*const u8, Box<isize>>(p) };
    }
}

pub fn main() {
    let t = Box::new(0);
    let p = unsafe { transmute::<Box<isize>, *const u8>(t) };
    let _z = NonCopyable(p);
}