@@ -173,35 +173,3 @@ pub fn f64_nearest(a: f64) -> f64 {
173173pub fn f64_sqrt ( a : f64 ) -> f64 {
174174 crate :: intrinsics:: sqrtf64 ( a)
175175}
176-
177- unsafe extern "C-unwind" {
178- #[ link_name = "llvm.wasm.throw" ]
179- fn wasm_throw ( tag : i32 , ptr : * mut u8 ) -> !;
180- }
181-
182- /// Generates the [`throw`] instruction from the [exception-handling proposal] for WASM.
183- ///
184- /// This function is unlikely to be stabilized until codegen backends have better support.
185- ///
186- /// [`throw`]: https://webassembly.github.io/exception-handling/core/syntax/instructions.html#syntax-instr-control
187- /// [exception-handling proposal]: https://github.com/WebAssembly/exception-handling
188- // FIXME: wasmtime does not currently support exception-handling, so cannot execute
189- // a wasm module with the throw instruction in it. once it does, we can
190- // reenable this attribute.
191- // #[cfg_attr(test, assert_instr(throw, TAG = 0, ptr = core::ptr::null_mut()))]
192- #[ inline]
193- #[ unstable( feature = "wasm_exception_handling_intrinsics" , issue = "122465" ) ]
194- // FIXME: Since this instruction unwinds, `core` built with `-C panic=unwind`
195- // cannot be linked with `-C panic=abort` programs. But that's not
196- // entirely supported anyway, because runtimes without EH support won't
197- // be able to handle `try` blocks in `-C panic=unwind` crates either.
198- // We ship `-C panic=abort` `core`, so this doesn't affect users
199- // directly. Resolving this will likely require patching out both `try`
200- // and `throw` instructions, at which point we can look into whitelisting
201- // this function in the compiler to allow linking.
202- // See https://github.com/rust-lang/rust/issues/118168.
203- #[ allow( ffi_unwind_calls) ]
204- pub unsafe fn throw < const TAG : i32 > ( ptr : * mut u8 ) -> ! {
205- static_assert ! ( TAG == 0 ) ; // LLVM only supports tag 0 == C++ right now.
206- wasm_throw ( TAG , ptr)
207- }
0 commit comments