Rust 1.99.1 Fixes a bool Return That Could Read as 16 in C Callers, 14 Days After 1.99.0
Software / news
Rust 1.99.1 Fixes a bool Return That Could Read as 16 in C Callers, 14 Days After 1.99.0
The Rust release team shipped three regression fixes on October 15. The bool bug traces to a test that ran on UEFI instead of Linux.

The Rust Release Team shipped Rust 1.99.1 on October 15, 2026, two weeks after 1.99.0, to fix three regressions. The one with the widest reach is a miscompilation: an extern "C" function returning bool on x86_64 could hand a C caller a value other than 0 or 1.
Rust's announcement post lists the three fixes, each with an issue number. Users on rustup update with rustup update stable.
The bool return bug, issue #163911
The reporter, wezm, opened rust-lang/rust#163911 on October 7. In the reporter's C test, the C program printed 16 where it should have printed 0 or 1. The issue is labelled P-critical.
Rust 1.99.0 and nightly 1.101.0 (2026-10-05) were affected. Rust 1.98.0 was not, which makes this a regression between stable releases. It reproduces with both gcc and clang on x86_64 Linux, and not on aarch64 or loongarch64.
The issue thread traces the cause to rustc no longer emitting the zeroext attribute on the i1 return value. LLVM could then assume the upper bits of the return register were unused. Pull request #142389 had removed zero-extension of scalar return types on x86_64, and #159317 exposed the problem because earlier code zero-extended unconditionally. A commenter wrote that the x86-64 psABI requires bits 1 to 7 to be zero for a bool return.
The existing test for bool handling targeted x86_64-unknown-uefi rather than the Linux target, per the issue thread. Pull request #163917, by saethlin, restored the zero extension and merged on October 10.
The other two fixes
The wcslen bug, #163614, hit x86_64-unknown-uefi release builds. LLVM's loop-idiom-wcslen pass can introduce calls to the function, and the linker reported "undefined symbol: wcslen" for a no_std binary built on the uefi crate. The reporter said it last worked on 1.98.1. The fix adds wcslen to compiler-builtins as a fallback.
A maintainer in that thread said an earlier backport for a related beta issue was narrower than the full fix, and that the commit adding wcslen "wasn't on the radar." Until 1.99.1, a workaround was RUSTFLAGS="-C llvm-args=-disable-loop-idiom-wcslen".
The third fix, #163947, covers rust-lld failing to load libLLVM on macOS when run without the rustup proxy. It is now built with an rpath entry pointing at the directory holding libLLVM.dylib.
| Issue | Affects | Opened | Closed |
|---|---|---|---|
| #163614 wcslen undefined | UEFI release builds | October 1 | October 14 |
| #163911 bool return | x86_64 Linux FFI | October 7 | October 14 |
- #163614 wcslen13 days
- #163911 bool return7 days
Source: rust-lang/rust issues #163614 and #163911, accessed 2026-10-16; days calculated from the listed dates
A third .1 in a row
The Rust blog lists point releases for 1.97.1 on July 16, 1.98.1 on September 3 and now 1.99.1. The 1.97.1 post said it fixed a miscompilation in an LLVM optimization that had been present since at least Rust 1.87, and tracked it at #159035.
A commenter on LWN, tialaramex, wrote after 1.97.1 that the release included an LLVM fix and reverted a Rust ABI change that had made the bug more noticeable, and expected the ABI change to return in Rust 1.98.
The practical question for anyone calling Rust from C or C++ on x86_64 Linux is whether a 1.99.0 build was shipped. If so, the fix is a rebuild with 1.99.1. Which C callers misbehave depends on what they do with the stray bits, which the issue does not enumerate. For other Linux-side bug hunts, see how a corrupted ISO download led to a Qualcomm driver bug, and the xtool 1.22.2 release on Linux tooling for iOS apps.
Rust 1.99.1 installs with rustup update stable; the post names no individual contributors in its text.
Sources
More in Software
- 01Sphinx, a Git Hook, Quizzes Developers on Agent-Written Code Before a Push Goes ThroughThe MIT-licensed 0.1 release sets a global Git hooks path, can block a push for 25 minutes and sends the diff to a reviewer model of the user's choice.
- 02Microsoft and CMU Start PRAISE, a Certificate for Early-Career Engineers Working With AIJunior Microsoft engineers take four CMU courses over two semesters with senior mentors, but neither announcement gives a cohort size, a cost or an eligibility rule.
- 03Lean 4.35 Adds Cross-Checking With a Claude-Written Kernel Proven ConsistentThe lake check command reruns a project through five kernels after an OpenAI model got four kernel soundness bugs to accept a proof of False this summer.
- 04CLI-Anything Reaches 54,400 Stars; GUI Agents Led CLI Agents 59.1% to 48.2% in One StudyThe HKUDS project generates command-line wrappers for desktop software, and the only comparison available shows its approach catching up only after skills were expanded.