]> git.lizzy.rs Git - rust.git/blobdiff - src/test/codegen-units/partitioning/auxiliary/shared_generics_aux.rs
Make drop-glue take advantage of -Zshare-generics.
[rust.git] / src / test / codegen-units / partitioning / auxiliary / shared_generics_aux.rs
index 9050e8f1671d9c790321dc72ee35a993db80f438..ffbd0dc54844913a1f562c5b05c707d8879337c1 100644 (file)
@@ -1,4 +1,6 @@
-// compile-flags:-Zshare-generics=yes
+// NOTE: We always compile this test with -Copt-level=0 because higher opt-levels
+//       prevent drop-glue from participating in share-generics.
+// compile-flags:-Zshare-generics=yes -Copt-level=0
 // no-prefer-dynamic
 
 #![crate_type="rlib"]
@@ -8,5 +10,17 @@ pub fn generic_fn<T>(x: T, y: T) -> (T, T) {
 }
 
 pub fn use_generic_fn_f32() -> (f32, f32) {
+    // This line causes drop glue for Foo to be instantiated. We want to make
+    // sure that this crate exports an instance to be re-used by share-generics.
+    let _ = Foo(0);
+
     generic_fn(0.0f32, 1.0f32)
 }
+
+pub struct Foo(pub u32);
+
+impl Drop for Foo {
+    fn drop(&mut self) {
+        println!("foo");
+    }
+}