rust/src/test/codegen/unwind-extern-exports.rs

20 lines
597 B
Rust
Raw Normal View History

// compile-flags: -C opt-level=0
#![crate_type = "lib"]
#![feature(unwind_attributes)]
// Make sure these all do *not* get the attribute.
// We disable optimizations to prevent LLVM from infering the attribute.
// CHECK-NOT: nounwind
// "C" ABI
// pub extern fn foo() {} // FIXME right now we don't abort-on-panic but add `nounwind` nevertheless
#[unwind(allowed)]
pub extern fn foo_allowed() {}
// "Rust" ABI (`extrn "Rust"` could be removed as all `fn` get it implicitly; we leave it
// in for clarity.)
pub extern "Rust" fn bar() {}
#[unwind(allowed)]
pub extern "Rust" fn bar_allowed() {}