summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test cases/rust/3 staticlib/meson.build3
-rw-r--r--test cases/rust/3 staticlib/prog2.rs5
-rw-r--r--test cases/rust/3 staticlib/stuff2.rs14
3 files changed, 22 insertions, 0 deletions
diff --git a/test cases/rust/3 staticlib/meson.build b/test cases/rust/3 staticlib/meson.build
index cf8e1032e..c577fab95 100644
--- a/test cases/rust/3 staticlib/meson.build
+++ b/test cases/rust/3 staticlib/meson.build
@@ -5,3 +5,6 @@ v = static_library('value', 'value.c')
l = static_library('stuff', 'stuff.rs', link_whole : [o, v], install : true)
e = executable('prog', 'prog.rs', link_with : l, install : true)
test('linktest', e)
+
+l = static_library('stuff2', 'stuff2.rs', link_with : [o, v])
+e = executable('prog2', 'prog2.rs', link_with : l)
diff --git a/test cases/rust/3 staticlib/prog2.rs b/test cases/rust/3 staticlib/prog2.rs
new file mode 100644
index 000000000..9c25c77d5
--- /dev/null
+++ b/test cases/rust/3 staticlib/prog2.rs
@@ -0,0 +1,5 @@
+extern crate stuff2;
+
+fn main() {
+ println!("printing: {}", stuff2::explore());
+}
diff --git a/test cases/rust/3 staticlib/stuff2.rs b/test cases/rust/3 staticlib/stuff2.rs
new file mode 100644
index 000000000..5e0167ace
--- /dev/null
+++ b/test cases/rust/3 staticlib/stuff2.rs
@@ -0,0 +1,14 @@
+#![crate_name = "stuff2"]
+
+extern crate other;
+
+extern "C" {
+ fn c_explore_value() -> i32;
+}
+
+pub fn explore(
+) -> String {
+ unsafe {
+ other::explore(c_explore_value())
+ }
+}