diff options
Diffstat (limited to 'tests/rust/cdecl.rs')
-rw-r--r-- | tests/rust/cdecl.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/rust/cdecl.rs b/tests/rust/cdecl.rs new file mode 100644 index 0000000..399de8f --- /dev/null +++ b/tests/rust/cdecl.rs @@ -0,0 +1,41 @@ +type A = fn (); +type B = fn () -> (); +type C = fn (i32, i32) -> bool; +type D = fn (i32) -> fn (f32) -> bool; +type E = fn () -> *const [i32; 16]; + +type F = *const i32; +type G = *const *const i32; +type H = *const *mut i32; +type I = *const [i32; 16]; +type J = *const fn (f32) -> f64; + +type K = [i32; 16]; +type L = [*const i32; 16]; +type M = [fn (i32, i32) -> bool; 16]; +type N = [fn (i32, i32) -> (); 16]; + +#[no_mangle] +pub extern "C" fn O() -> fn () +{ } + +type P = fn (named1st: i32, bool, named3rd: bool, _: i32); + +#[no_mangle] +pub extern "C" fn root( + a: A, + b: B, + c: C, + d: D, + e: E, + f: F, + g: G, + h: H, + i: I, + j: J, + k: K, + l: L, + m: M, + n: N, + p: P +) { } |