Files
rust/library/stdarch
Alisa Sireneva 420544a34a Move wasm throw intrinsic back to unwind
rustc assumes that regular `extern "Rust"` functions unwind only if the
`unwind` panic runtime is linked. `throw` was annotated as such, but
unwound unconditionally. This could cause UB when a crate built with `-C
panic=abort` called `throw` from `core` built with `-C panic=unwind`,
since no terminator was added to handle the panic arising from calling an
allegedly non-unwinding `extern "Rust"` function.

rustc was taught to recognize this condition since
https://github.com/rust-lang/rust/pull/144225 and prevented such
linkage, but this caused regressions in
https://github.com/rust-lang/rust/issues/148246, since this meant that
Emscripten projects could not be built with `-C panic=abort` without
recompiling std.

The most straightforward solution would be to move `throw` into the
`panic_unwind` crate, so that it's only compiled if the panic runtime is
guaranteed to be `unwind`, but this is messy due to our architecture.
Instead, move it into `unwind::wasm`, which is only compiled for
bare-metal targets that default to `panic = "abort"`, rendering the
issue moot.
2025-10-30 15:13:32 +03:00
..
2025-09-12 11:51:38 +00:00
2025-06-12 06:03:37 +00:00
2023-05-15 17:34:11 +02:00
2025-09-07 14:11:01 +02:00
2017-09-25 12:43:06 -07:00
2017-09-25 12:43:06 -07:00
2025-07-22 20:17:49 +02:00
2025-01-16 14:29:19 +00:00

stdarch - Rust's standard library SIMD components

Actions Status

This repository contains the core_arch crate, which implements core::arch - Rust's core library architecture-specific intrinsics.

The std::simd component now lives in the packed_simd_2 crate.

Synchronizing josh subtree with rustc

This repository is linked to rust-lang/rust as a josh subtree. You can use the rustc-josh-sync tool to perform synchronization.

You can find a guide on how to perform the synchronization here.