summaryrefslogtreecommitdiffstats
path: root/tests/rust/function_args.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rust/function_args.rs')
-rw-r--r--tests/rust/function_args.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/rust/function_args.rs b/tests/rust/function_args.rs
new file mode 100644
index 0000000..52a6a23
--- /dev/null
+++ b/tests/rust/function_args.rs
@@ -0,0 +1,25 @@
+#[no_mangle]
+pub unsafe extern fn array_print(a: &[u64]) {
+ eprintln!("{:?}", a);
+}
+
+#[no_mangle]
+pub unsafe extern fn array_test(a: [u64; 3]) {
+ array_print(&a);
+}
+
+#[no_mangle]
+pub unsafe extern fn unnamed(_: *const u64) {
+}
+
+#[no_mangle]
+pub unsafe extern fn pointer_test(a: *const u64) {
+ let a = std::slice::from_raw_parts(a, 3);
+ array_print(a);
+}
+
+#[no_mangle]
+pub unsafe extern fn print_from_rust() {
+ let a = [0, 1, 2];
+ array_print(&a);
+}