Merge pull request #1895 from madhav-madhusoodanan/intrinsic-test-intrinsictype-cleanup
`intrinsic-test`: Cleaning the `IntrinsicType` struct and related functionalities
diff --git a/crates/core_arch/src/wasm32/mod.rs b/crates/core_arch/src/wasm32/mod.rs
index 2c4361f..60049c7 100644
--- a/crates/core_arch/src/wasm32/mod.rs
+++ b/crates/core_arch/src/wasm32/mod.rs
@@ -191,6 +191,16 @@
// #[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<const TAG: i32>(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 622dce1..1ced609 100644
--- a/rust-version
+++ b/rust-version
@@ -1 +1 @@
-5a30e4307f0506bed87eeecd171f8366fdbda1dc
+32e7a4b92b109c24e9822c862a7c74436b50e564