Rollup of 4 pull requests - #162596
Closed
JonathanBrouwer wants to merge 17 commits into
Closed
Conversation
…c location and add more unit tests.
Randomness generation failure is an abnormal circumstance that should lead to program termination. It's not reasonable to let consumers of `std` functionality catch such failures and resume from the.
These are dead since the old emitter was removed in Jan 2026 (3ccabc6). Also removed: `BRIGHT_BLUE`, `Level::color`, and a couple of `level` fn parameters.
It has a single use, where it is passed in to `format_diag_messages` which then discards it. So that use can be replaced with `Style::NoStyle`.
`format_diag_messages` always constructs a `String`, so it can just return that. This simplifies various call sites.
When there's a single message, `format_diag_message` suffices.
Current `Level` is used for both diagnostics and subdiagnostics. But both diagnostics and subdiagnostics only use some of the levels. This commit introduces `Sublevel` to tighten up the representation and prevent impossible combinations.
Use the `FatalError` re-export from `rustc_errors` instead of `rustc_span`, because that's what's normally done.
Fix soundness issues in std::sys::pal::sgx::waitqueue::unsafe_list Replace invalid uses of references in `std::sys::pal::sgx::waitqueue::unsafe_list` internals with raw pointers. I tried to keep the code structure the same as much as possible. In addition to the use of references flagged in the original issue, it turns out the head/tail (raw) pointer stored in the linked list caused provenance issues in miri. Switched to using UnsafePinned for that. PR organization: * Commit 1: Main soundness fix. * Commit 2: Use pinning in the `pub(crate)` API for UnsafeList. This code predates pinning in Rust. I believe this change isn't strictly necessary as I believe it's valid to document pinning requirements in the unsafe methods on UnsafeList. However, I felt it's better to be explicit about this now that pinning is available in the language. * Commit 3: Move UnsafeList to a platform-agnostic location so miri can be run on the test suite. This also adds some tests. This PR was developed with Claude Fable 5 through extensive interactive use, where I directed a detailed plan for making the changes needed for this fix. My input includes keeping the structure the same and the new internal abstraction for dealing with raw pointers. I'm not familiar with miri, I used Claude to test the changes with miri. It said the test suite was failing before the changes (both stacked borrows and tree borrows) but passing after. The additional tests developed this way have been added in the third commit. The head/tail pointer provenance issue was found with Claude. I thoroughly reviewed all the code, including comments, and made manual changes/deletions where necessary/appropriate. The PR description was written by me. r? @nia-e Fixes rust-lang#114581 Fixes rust-lang#160603 Fixes rust-lang#161060 Supersedes rust-lang#160641
Implement arbitrary casts in custom mir [See zulip](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/extending.20custom.20MIR/with/613727602) Implement custom casts using an enum in `intrinsics::mir` that closely matches the `CastKind` enum in the compiler. We have 5 different ways to cast in custom MIR, 3 with functions (which hard code a cast kind), 1 implicit coerce (which only does subtyping i think), 1 with `as` (which does a few more). They are all different and the error messages don't tell you what to do. Some are (i think) not possible at all. This came up [while testing miri](https://rust-lang.zulipchat.com/#narrow/channel/136281-t-opsem/topic/Valdity.20checks.20for.20references/near/613662285). We currently have to guess the casting syntax until we find the one that generates the MIR we want. This PR changes that by adding a custom mir operation that allows picking an arbitrary cast. r? RalfJung
…r=oli-obk Simplify diagnostic levels This PR separates diagnostic levels from subdiagnostic levels and does a few preliminary cleanups. Details in individual commits. r? @oli-obk
… r=khyperia Gate ELF code in metadata.rs for ELF only This PR gates ELF specific code for `BinaryFormat::Elf`. With this change, fallback for PowerPC64 on AIX is no longer needed. --------- Assisted-by: IBM Bob The issue was discovered by IBM Bob while checking changes for other things, and I personally verified the bug. Although the fix is trivial, I ran it through IBM Bob to make sure I wasn’t missing anything.
Member
Author
Contributor
Contributor
|
⌛ Trying commit 312a653 with merge 24bc195… To cancel the try build, run the command Workflow: https://github.com/rust-lang/rust/actions/runs/34486865264 |
rust-bors Bot
pushed a commit
that referenced
this pull request
Sep 10, 2026
Rollup of 4 pull requests try-job: dist-various-1 try-job: test-various try-job: test-x86_64-gnu-aux try-job: test-x86_64-gnu-llvm-21-3 try-job: test-x86_64-msvc-1 try-job: test-aarch64-apple-1 try-job: test-aarch64-apple-2 try-job: test-x86_64-mingw-1 try-job: test-i686-msvc try-job: test-armhf-gnu
Collaborator
|
The job Click to see the possible cause of the failure (guessed by this bot) |
Collaborator
|
The job Click to see the possible cause of the failure (guessed by this bot) |
Contributor
|
PR #160860, which is a member of this rollup, was unapproved. This rollup was thus unapproved. |
Member
Author
|
@bors try cancel |
Contributor
|
Try build cancelled. Cancelled workflows: Hint: if you want to run another try build, you do not need to manually cancel the previous one. Just run |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Successful merges:
r? @ghost
Create a similar rollup