//@ check-pass // Test that we can handle newtypes wrapping extern types #![feature(extern_types)] use std::marker::PhantomData; extern "C" { pub type ExternType; } unsafe impl Sync for ExternType {} static MAGIC_FFI_STATIC: u8 = 42; #[repr(transparent)] pub struct Wrapper(ExternType); pub static MAGIC_FFI_REF: &'static Wrapper = unsafe { std::mem::transmute(&MAGIC_FFI_STATIC) }; #[repr(transparent)] pub struct Wrapper2(PhantomData>, ExternType); pub static MAGIC_FFI_REF2: &'static Wrapper2 = unsafe { std::mem::transmute(&MAGIC_FFI_STATIC) }; fn main() {}