diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:20:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:20:29 +0000 |
commit | 631cd5845e8de329d0e227aaa707d7ea228b8f8f (patch) | |
tree | a1b87c8f8cad01cf18f7c5f57a08f102771ed303 /tests/run-make-fulldeps/extern-fn-generic | |
parent | Adding debian version 1.69.0+dfsg1-1. (diff) | |
download | rustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.tar.xz rustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.zip |
Merging upstream version 1.70.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/run-make-fulldeps/extern-fn-generic')
4 files changed, 0 insertions, 58 deletions
diff --git a/tests/run-make-fulldeps/extern-fn-generic/Makefile b/tests/run-make-fulldeps/extern-fn-generic/Makefile deleted file mode 100644 index 71746fb10..000000000 --- a/tests/run-make-fulldeps/extern-fn-generic/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -include ../tools.mk - -all: $(call NATIVE_STATICLIB,test) - $(RUSTC) testcrate.rs - $(RUSTC) test.rs - $(call RUN,test) || exit 1 diff --git a/tests/run-make-fulldeps/extern-fn-generic/test.c b/tests/run-make-fulldeps/extern-fn-generic/test.c deleted file mode 100644 index a8504ff2a..000000000 --- a/tests/run-make-fulldeps/extern-fn-generic/test.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <stdint.h> - -typedef struct TestStruct { - uint8_t x; - int32_t y; -} TestStruct; - -typedef int callback(TestStruct s); - -uint32_t call(callback *c) { - TestStruct s; - s.x = 'a'; - s.y = 3; - - return c(s); -} diff --git a/tests/run-make-fulldeps/extern-fn-generic/test.rs b/tests/run-make-fulldeps/extern-fn-generic/test.rs deleted file mode 100644 index c9baa4898..000000000 --- a/tests/run-make-fulldeps/extern-fn-generic/test.rs +++ /dev/null @@ -1,20 +0,0 @@ -extern crate testcrate; - -extern "C" fn bar<T>(ts: testcrate::TestStruct<T>) -> T { - ts.y -} - -#[link(name = "test", kind = "static")] -extern "C" { - fn call(c: extern "C" fn(testcrate::TestStruct<i32>) -> i32) -> i32; -} - -fn main() { - // Let's test calling it cross crate - let back = unsafe { testcrate::call(testcrate::foo::<i32>) }; - assert_eq!(3, back); - - // And just within this crate - let back = unsafe { call(bar::<i32>) }; - assert_eq!(3, back); -} diff --git a/tests/run-make-fulldeps/extern-fn-generic/testcrate.rs b/tests/run-make-fulldeps/extern-fn-generic/testcrate.rs deleted file mode 100644 index 39f76e59c..000000000 --- a/tests/run-make-fulldeps/extern-fn-generic/testcrate.rs +++ /dev/null @@ -1,16 +0,0 @@ -#![crate_type = "lib"] - -#[repr(C)] -pub struct TestStruct<T> { - pub x: u8, - pub y: T, -} - -pub extern "C" fn foo<T>(ts: TestStruct<T>) -> T { - ts.y -} - -#[link(name = "test", kind = "static")] -extern "C" { - pub fn call(c: extern "C" fn(TestStruct<i32>) -> i32) -> i32; -} |