about summary refs log tree commit diff
path: root/tests/codegen/drop.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/codegen/drop.rs')
-rw-r--r--tests/codegen/drop.rs36
1 files changed, 0 insertions, 36 deletions
diff --git a/tests/codegen/drop.rs b/tests/codegen/drop.rs
deleted file mode 100644
index b22a8ef27d2..00000000000
--- a/tests/codegen/drop.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-//@ needs-unwind - this test verifies the amount of drop calls when unwinding is used
-//@ compile-flags: -C no-prepopulate-passes
-
-#![crate_type = "lib"]
-
-struct SomeUniqueName;
-
-impl Drop for SomeUniqueName {
-    #[inline(never)]
-    fn drop(&mut self) {}
-}
-
-#[inline(never)]
-pub fn possibly_unwinding() {}
-
-// CHECK-LABEL: @droppy
-#[no_mangle]
-pub fn droppy() {
-    // Check that there are exactly 6 drop calls. The cleanups for the unwinding should be reused,
-    // so that's one new drop call per call to possibly_unwinding(), and finally 3 drop calls for
-    // the regular function exit. We used to have problems with quadratic growths of drop calls in
-    // such functions.
-    // FIXME(eddyb) the `void @` forces a match on the instruction, instead of the
-    // comment, that's `; call core::ptr::drop_in_place::<drop::SomeUniqueName>`
-    // for the `v0` mangling, should switch to matching on that once `legacy` is gone.
-    // CHECK-COUNT-6: {{(call|invoke) void @.*}}drop_in_place{{.*}}SomeUniqueName
-    // CHECK-NOT: {{(call|invoke) void @.*}}drop_in_place{{.*}}SomeUniqueName
-    // The next line checks for the } that ends the function definition
-    // CHECK-LABEL: {{^[}]}}
-    let _s = SomeUniqueName;
-    possibly_unwinding();
-    let _s = SomeUniqueName;
-    possibly_unwinding();
-    let _s = SomeUniqueName;
-    possibly_unwinding();
-}