summaryrefslogtreecommitdiffstats
path: root/tests/run-make/extern-fn-with-extern-types/test.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make/extern-fn-with-extern-types/test.rs')
-rw-r--r--tests/run-make/extern-fn-with-extern-types/test.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/run-make/extern-fn-with-extern-types/test.rs b/tests/run-make/extern-fn-with-extern-types/test.rs
new file mode 100644
index 000000000..90a6ebaf1
--- /dev/null
+++ b/tests/run-make/extern-fn-with-extern-types/test.rs
@@ -0,0 +1,17 @@
+#![feature(extern_types)]
+
+#[link(name = "ctest", kind = "static")]
+extern "C" {
+ type data;
+
+ fn data_create(magic: u32) -> *mut data;
+ fn data_get(data: *mut data) -> u32;
+}
+
+const MAGIC: u32 = 0xdeadbeef;
+fn main() {
+ unsafe {
+ let data = data_create(MAGIC);
+ assert_eq!(data_get(data), MAGIC);
+ }
+}