mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-30 05:51:58 +00:00
Use the native unwind function in miri where possible
This commit is contained in:
parent
221e2741c3
commit
45b0f68e34
@ -36,18 +36,14 @@ use core::panic::PanicPayload;
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(target_os = "emscripten")] {
|
||||
#[path = "emcc.rs"]
|
||||
mod real_imp;
|
||||
mod imp;
|
||||
} else if #[cfg(target_os = "hermit")] {
|
||||
#[path = "hermit.rs"]
|
||||
mod real_imp;
|
||||
mod imp;
|
||||
} else if #[cfg(target_os = "l4re")] {
|
||||
// L4Re is unix family but does not yet support unwinding.
|
||||
#[path = "dummy.rs"]
|
||||
mod real_imp;
|
||||
} else if #[cfg(all(target_env = "msvc", not(target_arch = "arm")))] {
|
||||
// LLVM does not support unwinding on 32 bit ARM msvc (thumbv7a-pc-windows-msvc)
|
||||
#[path = "seh.rs"]
|
||||
mod real_imp;
|
||||
mod imp;
|
||||
} else if #[cfg(any(
|
||||
all(target_family = "windows", target_env = "gnu"),
|
||||
target_os = "psp",
|
||||
@ -58,7 +54,16 @@ cfg_if::cfg_if! {
|
||||
target_family = "wasm",
|
||||
))] {
|
||||
#[path = "gcc.rs"]
|
||||
mod real_imp;
|
||||
mod imp;
|
||||
} else if #[cfg(miri)] {
|
||||
// Use the Miri runtime on Windows as miri doesn't support funclet based unwinding,
|
||||
// only landingpad based unwinding. Also use the Miri runtime on unsupported platforms.
|
||||
#[path = "miri.rs"]
|
||||
mod imp;
|
||||
} else if #[cfg(all(target_env = "msvc", not(target_arch = "arm")))] {
|
||||
// LLVM does not support unwinding on 32 bit ARM msvc (thumbv7a-pc-windows-msvc)
|
||||
#[path = "seh.rs"]
|
||||
mod imp;
|
||||
} else {
|
||||
// Targets that don't support unwinding.
|
||||
// - os=none ("bare metal" targets)
|
||||
@ -67,20 +72,7 @@ cfg_if::cfg_if! {
|
||||
// - nvptx64-nvidia-cuda
|
||||
// - arch=avr
|
||||
#[path = "dummy.rs"]
|
||||
mod real_imp;
|
||||
}
|
||||
}
|
||||
|
||||
cfg_if::cfg_if! {
|
||||
if #[cfg(miri)] {
|
||||
// Use the Miri runtime.
|
||||
// We still need to also load the normal runtime above, as rustc expects certain lang
|
||||
// items from there to be defined.
|
||||
#[path = "miri.rs"]
|
||||
mod imp;
|
||||
} else {
|
||||
// Use the real runtime.
|
||||
use real_imp as imp;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user