| //@ 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); | |
| } |