1 // compile-flags: -C no-prepopulate-passes
2 // ignore-wasm32-bare compiled with panic=abort by default
5 #![feature(unwind_attributes)]
8 // CHECK: Function Attrs:{{.*}}nounwind
9 // CHECK-NEXT: declare{{.*}}void @extern_fn
11 // CHECK-NOT: Function Attrs:{{.*}}nounwind
12 // CHECK: declare{{.*}}void @unwinding_extern_fn
14 fn unwinding_extern_fn();
15 // CHECK-NOT: nounwind
16 // CHECK: declare{{.*}}void @aborting_extern_fn
18 fn aborting_extern_fn(); // FIXME: we want to have the attribute here
22 // CHECK-NOT: nounwind
23 // CHECK: declare{{.*}}void @rust_extern_fn
25 // CHECK-NOT: nounwind
26 // CHECK: declare{{.*}}void @rust_unwinding_extern_fn
28 fn rust_unwinding_extern_fn();
29 // CHECK-NOT: nounwind
30 // CHECK: declare{{.*}}void @rust_aborting_extern_fn
32 fn rust_aborting_extern_fn(); // FIXME: we want to have the attribute here
35 pub unsafe fn force_declare() {
37 unwinding_extern_fn();
40 rust_unwinding_extern_fn();
41 rust_aborting_extern_fn();