#![no_std]
#![allow(unused_imports)]
#![cfg_attr(feature = "nightly", allow(internal_features))]
#![cfg_attr(feature = "nightly", feature(core_intrinsics))]
#[cfg(doc)]
extern crate std;
use core::arch::asm;
use core::hint::unreachable_unchecked;
#[allow(unreachable_code)]
#[cold]
#[inline(never)]
#[track_caller]
pub fn trap() -> ! {
#[cfg(feature = "nightly")]
core::intrinsics::abort();
#[cfg(target_arch = "aarch64")]
unsafe {
asm!("brk #1");
unreachable_unchecked();
}
#[cfg(target_arch = "arm")]
unsafe {
asm!(".inst 0xE7FFDEFE");
unreachable_unchecked();
}
#[cfg(target_arch = "riscv32")]
unsafe {
asm!("unimp");
unreachable_unchecked();
}
#[cfg(target_arch = "riscv64")]
unsafe {
asm!("unimp");
unreachable_unchecked();
}
#[cfg(target_arch = "x86")]
unsafe {
asm!("ud2");
unreachable_unchecked();
}
#[cfg(target_arch = "x86_64")]
unsafe {
asm!("ud2");
unreachable_unchecked();
}
panic!("trap");
}