| // Check that rust_eh_personality can have a different type signature than the |
| // one hardcoded in the compiler. Regression test for #70117. Used to fail with: |
| // |
| // Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed. |
| // |
| //@ build-pass |
| //@ compile-flags: --crate-type=lib -Ccodegen-units=1 |
| #![no_std] |
| #![panic_runtime] |
| #![feature(panic_runtime)] |
| #![feature(rustc_attrs)] |
| |
| pub struct DropMe; |
| |
| impl Drop for DropMe { |
| fn drop(&mut self) {} |
| } |
| |
| pub fn test(_: DropMe) { |
| unreachable!(); |
| } |
| |
| #[rustc_std_internal_symbol] |
| pub unsafe extern "C" fn rust_eh_personality() {} |