blob: 7ff9c0d15e003a871234cdae8908bd2e345fd3a1 [file] [log] [blame]
// compile-flags: -O
// On x86 the closure is inlined in foo() producting something like
// define i32 @foo() [...] {
// tail call void @bar() [...]
// ret i32 0
// }
// On riscv the closure is another function, placed before fn foo so CHECK can't
// find it
// ignore-riscv64 FIXME
#![crate_type = "lib"]
extern "C" {
fn bar();
}
// CHECK-LABEL: @foo
#[no_mangle]
pub unsafe fn foo() -> i32 {
// CHECK: call void @bar
// CHECK: ret i32 0
std::panic::catch_unwind(|| {
bar();
0
})
.unwrap()
}