Reading issue
rust-lang / rust · Issue No. 163173
The following minimized example fails to compile on the latest nightly, but works on stable and the previous nightly:
#![no_std]
#[no_mangle]
pub fn test() {
unsafe { core::arch::asm!("nop", clobber_abi("C")) }
}
#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! {
loop {}
}
Current nightly:
❯ rustc +nightly-2026-09-22 --version
rustc 1.100.0-nightly (1303417c4 2026-09-21)
❯ rustc +nightly-2026-09-22 --target thumbv6m-none-eabi --crate-type staticlib -o repro.a repro.rs
error: register 'LR' allocated for constraint '{r14}' does not match required type
--> repro.rs:6:32
|
6 | unsafe { core::arch::asm!("nop", clobber_abi("C")) }
| ^^^
error: aborting due to 1 previous error
Prior nightly:
❯ rustc +nightly-2026-09-21 --version
rustc 1.100.0-nightly (bba531001 2026-09-20)
❯ rustc +nightly-2026-09-21 --target thumbv6m-none-eabi --crate-type staticlib -o repro.a repro.rs
Stable:
❯ rustc +stable --version
rustc 1.98.1 (48a229cea 2026-09-01)
❯ rustc +stable --target thumbv6m-none-eabi --crate-type staticlib -o repro.a repro.rs
This can also be reproduced with the examples of embassy-rp and zeptos, and likely anything that calls into the RP2040 boot ROM for flash operations.
Relay reads this issue against the repository's contribution signals: the files it is likely to touch, how the maintainers triage work this size, and what the first contribution would exercise.
The full analysis for this issue is still being assembled. Until then, the description above and the thread on GitHub are the most reliable context.