2017-11-08 18:11:35 -05:00
|
|
|
|
|
|
|
struct Opaque();
|
|
|
|
|
|
|
|
#[repr(C)]
|
|
|
|
struct Foo {
|
|
|
|
x: Option<&Opaque>,
|
|
|
|
y: Option<&mut Opaque>,
|
|
|
|
z: Option<fn () -> ()>,
|
2021-01-14 21:33:29 +01:00
|
|
|
zz: *mut Option<fn () -> ()>,
|
2017-11-08 18:11:35 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
#[repr(C)]
|
|
|
|
union Bar {
|
|
|
|
x: Option<&Opaque>,
|
|
|
|
y: Option<&mut Opaque>,
|
|
|
|
z: Option<fn () -> ()>,
|
2021-01-14 21:33:29 +01:00
|
|
|
zz: *mut Option<fn () -> ()>,
|
2017-11-08 18:11:35 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
#[no_mangle]
|
2018-01-04 14:42:02 -06:00
|
|
|
pub extern "C" fn root(
|
|
|
|
a: Option<&Opaque>,
|
|
|
|
b: Option<&mut Opaque>,
|
|
|
|
c: Foo,
|
2021-01-14 21:33:29 +01:00
|
|
|
d: Bar,
|
|
|
|
e: *mut Option<*mut Opaque>,
|
2021-02-24 18:10:17 +01:00
|
|
|
f: extern "C" fn(Option<&Opaque>),
|
2018-01-04 14:42:02 -06:00
|
|
|
) { }
|