1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
//@ compile-flags: -Copt-level=3 #![crate_type = "lib"] struct A; impl Drop for A { fn drop(&mut self) { extern "C" { fn foo(); } unsafe { foo(); } } } #[no_mangle] pub fn a(a: Box<i32>) { // CHECK-LABEL: define{{.*}}void @a // CHECK: call void @{{.*}}__rust_dealloc // CHECK-NEXT: call void @foo let _a = A; drop(a); }