summaryrefslogtreecommitdiffstats
path: root/tests/rust/manuallydrop.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rust/manuallydrop.rs')
-rw-r--r--tests/rust/manuallydrop.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/rust/manuallydrop.rs b/tests/rust/manuallydrop.rs
new file mode 100644
index 0000000..fea2537
--- /dev/null
+++ b/tests/rust/manuallydrop.rs
@@ -0,0 +1,22 @@
+#[repr(C)]
+pub struct Point {
+ x: i32,
+ y: i32,
+}
+
+#[repr(C)]
+pub struct MyStruct {
+ point: std::mem::ManuallyDrop<Point>,
+}
+
+pub struct NotReprC<T> {
+ inner: T,
+}
+
+pub type Foo = NotReprC<std::mem::ManuallyDrop<Point>>;
+
+#[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<Point>) {}