diff --git a/crates/core_arch/src/wasm32/mod.rs b/crates/core_arch/src/wasm32/mod.rs index 82674a0d0b..57c9157bed 100644 --- a/crates/core_arch/src/wasm32/mod.rs +++ b/crates/core_arch/src/wasm32/mod.rs @@ -173,32 +173,3 @@ pub fn f64_nearest(a: f64) -> f64 { pub fn f64_sqrt(a: f64) -> f64 { crate::intrinsics::sqrtf64(a) } - -unsafe extern "C-unwind" { - #[link_name = "llvm.wasm.throw"] - fn wasm_throw(tag: i32, ptr: *mut u8) -> !; -} - -/// Generates the [`throw`] instruction from the [exception-handling proposal] for WASM. -/// -/// This function is unlikely to be stabilized until codegen backends have better support. -/// -/// [`throw`]: https://webassembly.github.io/exception-handling/core/syntax/instructions.html#syntax-instr-control -/// [exception-handling proposal]: https://github.com/WebAssembly/exception-handling -#[cfg_attr(test, assert_instr(throw, TAG = 0, ptr = core::ptr::null_mut()))] -#[inline] -#[unstable(feature = "wasm_exception_handling_intrinsics", issue = "122465")] -// FIXME: Since this instruction unwinds, `core` built with `-C panic=unwind` -// cannot be linked with `-C panic=abort` programs. But that's not -// entirely supported anyway, because runtimes without EH support won't -// be able to handle `try` blocks in `-C panic=unwind` crates either. -// We ship `-C panic=abort` `core`, so this doesn't affect users -// directly. Resolving this will likely require patching out both `try` -// and `throw` instructions, at which point we can look into whitelisting -// this function in the compiler to allow linking. -// See https://github.com/rust-lang/rust/issues/118168. -#[allow(ffi_unwind_calls)] -pub unsafe fn throw(ptr: *mut u8) -> ! { - static_assert!(TAG == 0); // LLVM only supports tag 0 == C++ right now. - wasm_throw(TAG, ptr) -} diff --git a/rust-version b/rust-version index 1ced6098ac..e313eada45 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -32e7a4b92b109c24e9822c862a7c74436b50e564 +73e6c9ebd9123154a196300ef58e30ec8928e74e