@@ -36,18 +36,14 @@ use core::panic::PanicPayload;
|
36 | 36 | cfg_if::cfg_if! { |
37 | 37 | if #[cfg(target_os = "emscripten")] { |
38 | 38 | #[path = "emcc.rs"] |
39 | | -mod real_imp; |
| 39 | +mod imp; |
40 | 40 | } else if #[cfg(target_os = "hermit")] { |
41 | 41 | #[path = "hermit.rs"] |
42 | | -mod real_imp; |
| 42 | +mod imp; |
43 | 43 | } else if #[cfg(target_os = "l4re")] { |
44 | 44 | // L4Re is unix family but does not yet support unwinding. |
45 | 45 | #[path = "dummy.rs"] |
46 | | -mod real_imp; |
47 | | -} else if #[cfg(all(target_env = "msvc", not(target_arch = "arm")))] { |
48 | | -// LLVM does not support unwinding on 32 bit ARM msvc (thumbv7a-pc-windows-msvc) |
49 | | - #[path = "seh.rs"] |
50 | | -mod real_imp; |
| 46 | +mod imp; |
51 | 47 | } else if #[cfg(any( |
52 | 48 | all(target_family = "windows", target_env = "gnu"), |
53 | 49 | target_os = "psp", |
@@ -58,7 +54,16 @@ cfg_if::cfg_if! {
|
58 | 54 | target_family = "wasm", |
59 | 55 | ))] { |
60 | 56 | #[path = "gcc.rs"] |
61 | | -mod real_imp; |
| 57 | +mod imp; |
| 58 | +} else if #[cfg(miri)] { |
| 59 | +// Use the Miri runtime on Windows as miri doesn't support funclet based unwinding, |
| 60 | +// only landingpad based unwinding. Also use the Miri runtime on unsupported platforms. |
| 61 | + #[path = "miri.rs"] |
| 62 | +mod imp; |
| 63 | +} else if #[cfg(all(target_env = "msvc", not(target_arch = "arm")))] { |
| 64 | +// LLVM does not support unwinding on 32 bit ARM msvc (thumbv7a-pc-windows-msvc) |
| 65 | + #[path = "seh.rs"] |
| 66 | +mod imp; |
62 | 67 | } else { |
63 | 68 | // Targets that don't support unwinding. |
64 | 69 | // - os=none ("bare metal" targets) |
@@ -67,20 +72,7 @@ cfg_if::cfg_if! {
|
67 | 72 | // - nvptx64-nvidia-cuda |
68 | 73 | // - arch=avr |
69 | 74 | #[path = "dummy.rs"] |
70 | | -mod real_imp; |
71 | | -} |
72 | | -} |
73 | | - |
74 | | -cfg_if::cfg_if! { |
75 | | -if #[cfg(miri)] { |
76 | | -// Use the Miri runtime. |
77 | | -// We still need to also load the normal runtime above, as rustc expects certain lang |
78 | | -// items from there to be defined. |
79 | | - #[path = "miri.rs"] |
80 | 75 | mod imp; |
81 | | -} else { |
82 | | -// Use the real runtime. |
83 | | -use real_imp as imp; |
84 | 76 | } |
85 | 77 | } |
86 | 78 | |
|