summaryrefslogtreecommitdiffstats
path: root/src/test/ui/lto/auxiliary
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/lto/auxiliary')
-rw-r--r--src/test/ui/lto/auxiliary/debuginfo-lto-aux.rs29
-rw-r--r--src/test/ui/lto/auxiliary/dylib.rs6
-rw-r--r--src/test/ui/lto/auxiliary/lto-duplicate-symbols1.rs6
-rw-r--r--src/test/ui/lto/auxiliary/lto-duplicate-symbols2.rs6
-rw-r--r--src/test/ui/lto/auxiliary/lto-rustc-loads-linker-plugin.rs6
-rw-r--r--src/test/ui/lto/auxiliary/msvc-imp-present.rs11
-rw-r--r--src/test/ui/lto/auxiliary/thin-lto-inlines-aux.rs7
7 files changed, 71 insertions, 0 deletions
diff --git a/src/test/ui/lto/auxiliary/debuginfo-lto-aux.rs b/src/test/ui/lto/auxiliary/debuginfo-lto-aux.rs
new file mode 100644
index 000000000..dd471154b
--- /dev/null
+++ b/src/test/ui/lto/auxiliary/debuginfo-lto-aux.rs
@@ -0,0 +1,29 @@
+// compile-flags: -g --crate-type=rlib
+
+pub struct StructWithLifetime<'a>(&'a i32);
+pub fn mk_struct_with_lt<'a>(x: &'a i32) -> StructWithLifetime<'a> {
+ StructWithLifetime(x)
+}
+
+pub struct RegularStruct(u32);
+pub fn mk_regular_struct(x: u32) -> RegularStruct {
+ RegularStruct(x)
+}
+
+pub fn take_fn(f: fn(i32) -> i32, x: i32) -> i32 {
+ f(x)
+}
+
+pub fn with_closure(x: i32) -> i32 {
+ let closure = |i| { x + i };
+
+ closure(1) + closure(2)
+}
+
+pub fn generic_fn<T>(x: T) -> (T, u32) {
+ (x, 1)
+}
+
+pub fn user_of_generic_fn(x: f32) -> (f32, u32) {
+ generic_fn(x)
+}
diff --git a/src/test/ui/lto/auxiliary/dylib.rs b/src/test/ui/lto/auxiliary/dylib.rs
new file mode 100644
index 000000000..e8b7f8f9f
--- /dev/null
+++ b/src/test/ui/lto/auxiliary/dylib.rs
@@ -0,0 +1,6 @@
+// compile-flags: -Z thinlto -C codegen-units=8
+
+#[inline]
+pub fn foo(b: u8) {
+ b.to_string();
+}
diff --git a/src/test/ui/lto/auxiliary/lto-duplicate-symbols1.rs b/src/test/ui/lto/auxiliary/lto-duplicate-symbols1.rs
new file mode 100644
index 000000000..ec6d05603
--- /dev/null
+++ b/src/test/ui/lto/auxiliary/lto-duplicate-symbols1.rs
@@ -0,0 +1,6 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+
+#[no_mangle]
+pub extern "C" fn foo() {}
diff --git a/src/test/ui/lto/auxiliary/lto-duplicate-symbols2.rs b/src/test/ui/lto/auxiliary/lto-duplicate-symbols2.rs
new file mode 100644
index 000000000..ec6d05603
--- /dev/null
+++ b/src/test/ui/lto/auxiliary/lto-duplicate-symbols2.rs
@@ -0,0 +1,6 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+
+#[no_mangle]
+pub extern "C" fn foo() {}
diff --git a/src/test/ui/lto/auxiliary/lto-rustc-loads-linker-plugin.rs b/src/test/ui/lto/auxiliary/lto-rustc-loads-linker-plugin.rs
new file mode 100644
index 000000000..d24375b2d
--- /dev/null
+++ b/src/test/ui/lto/auxiliary/lto-rustc-loads-linker-plugin.rs
@@ -0,0 +1,6 @@
+// compile-flags: -Clinker-plugin-lto
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+
+pub fn foo() {}
diff --git a/src/test/ui/lto/auxiliary/msvc-imp-present.rs b/src/test/ui/lto/auxiliary/msvc-imp-present.rs
new file mode 100644
index 000000000..933af050a
--- /dev/null
+++ b/src/test/ui/lto/auxiliary/msvc-imp-present.rs
@@ -0,0 +1,11 @@
+// no-prefer-dynamic
+// compile-flags: -Z thinlto -C codegen-units=8 -C prefer-dynamic
+
+#![crate_type = "rlib"]
+#![crate_type = "dylib"]
+
+pub static A: u32 = 43;
+
+pub mod a {
+ pub static A: u32 = 43;
+}
diff --git a/src/test/ui/lto/auxiliary/thin-lto-inlines-aux.rs b/src/test/ui/lto/auxiliary/thin-lto-inlines-aux.rs
new file mode 100644
index 000000000..5fd3f1996
--- /dev/null
+++ b/src/test/ui/lto/auxiliary/thin-lto-inlines-aux.rs
@@ -0,0 +1,7 @@
+// no-prefer-dynamic
+
+#![crate_type = "rlib"]
+
+pub fn bar() -> u32 {
+ 3
+}