#[repr(C)] pub struct Point { x: i32, y: i32, } #[repr(C)] pub struct MyStruct { point: std::mem::ManuallyDrop, } pub struct NotReprC { inner: T, } pub type Foo = NotReprC>; #[no_mangle] pub extern "C" fn root(a: &Foo, with_manual_drop: &MyStruct) {} #[no_mangle] pub extern "C" fn take(with_manual_drop: std::mem::ManuallyDrop) {}