Skip to content

Automatic Rustup - #5313

Merged
RalfJung merged 16 commits into
masterfrom
rustup-2026-09-10
Sep 10, 2026
Merged

Automatic Rustup#5313
RalfJung merged 16 commits into
masterfrom
rustup-2026-09-10

Conversation

@workflows-miri

Copy link
Copy Markdown

Merge ref '315ecf4a939d' from rust-lang/rust

Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: rust-lang/rust@315ecf4
Filtered ref: e8c919d
Upstream diff: rust-lang/rust@f248f40...315ecf4

This merge was created using https://github.com/rust-lang/josh-sync.

RalfJung and others added 15 commits September 3, 2026 14:10
Avoid the `arena_cache` modifier for several queries



The `arena_cache` query modifier is convenient, but we can potentially avoid some overhead by allocating values into the central `tcx.arena` when possible.

There should be no change to compiler output.
Use query for Variant InhabitedPredicate



It looks like there may be some benefit from caching.
Implement test- naming convention for CI jobs



This PR implements a naming convention for all jobs. Either they have to start with `dist-` (jobs that build artifacts) or `test-` (jobs that test stuff). It also performs some other minor cleanups and sorts the jobs, to make it easier to search through them in the GitHub UI.

r? jieyouxu
miri: enforce proper types for c-variadic arguments in shims

This adds proper type checks for c-variadic argument handling in Miri shims. So far we would have ICEd for many type mismatches since the innards of the interpreter generally assume that things are well-typed. The checks we are using are the same as for [`next_arg`](https://doc.rust-lang.org/nightly/std/ffi/struct.VaList.html#method.next_arg).

This uncovered some interesting points:
-  We should accept `&mut` as equivalent to `*mut`. We don't allow `&mut` as a type in `next_arg` but we do allow it for c-variadic calls, so this change also affects a bit more code in const-eval (if the caller passes an `&mut` and the callee expects a `*mut`). Even CFI is okay with treating `&mut` and `*mut` as equivalent so this should be fine. Cc @folkertdev
- Some places in the standard library futex handling used types for their variadic arguments that are not quite correct according to these rules. I fixed those. Cc @m-ou-se
- One variadic function takes pointers to `libc::timespec`. A program with a libc dependency has two copies of libc (one in the sysroot, and the normal dependency). When Miri looks up the expected argument type, it picks one of them, leading to Miri seeing a type mismatch when there is a call using the other copy. C generally considers two copies of the same type to be identical, so I implemented logic that does the same: two `repr(C)` types are "identical" if the names of the types, and the names and types of all fields, are identical. I then also used that logic for the normal ABI checks, where it will also help since we had similar trouble there in the past (that we had to find other work-arounds for).
Add missing option to `-Zself-profile-event` help message as well as information about what the default options are

The `query-cache-hit-count` option was forgotten to be added to the help text when it was added.

The new help text also documents which of the options are part of `default`, and now conveys the information that `args` is also a compound/group option and what it contains.
Minimize `DiagCtxt` methods

We have `DiagCtxt`, `DiagCtxtInner`, and `DiagCtxtHandle`. They're all necessary, but the method placement is inconsistent. This commit establishes a clearer rule: methods should *not* go on `DiagCtxt` whenever possible.

Benefits:

- Simpler rule for deciding where to put a method.

- `impl Deref for DiagCtxtHandle` can be removed, including its non-standard double-reference `&&'a DiagCtxt` return value. This makes it impossible to accidentally discard a taint target by calling `handle` on a `DiagCtxtHandle`.

- Catches some places where we were calling `dcx.handle()` when `dcx` was already a handle.

r? @oli-obk
…li-obk

Add a mention to docs about promoting and demoting platform support

I wanted to jump from the target support page and learn about how these targets are promototed/demoted but couldn't find a direct link for that.

Would it make sense to link the (great) [forge docs](https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#targets) about that?

r? @jieyouxu

No LLM was harmed when writing these 2 sentences.
…uwer

Rollup of 5 pull requests

Successful merges:

 - rust-lang/rust#162470 (Subtree sync for rustc_codegen_cranelift)
 - rust-lang/rust#161734 (miri: enforce proper types for c-variadic arguments in shims)
 - rust-lang/rust#161821 (Add missing option to `-Zself-profile-event` help message as well as information about what the default options are)
 - rust-lang/rust#162453 (Minimize `DiagCtxt` methods)
 - rust-lang/rust#162528 (Add a mention to docs about promoting and demoting platform support)
Drop host tools from `i686-pc-windows-msvc`



Implements [RFC 3999](rust-lang/rfcs#3999).
Fixes rust-lang/rust#158378

I have collapsed two test jobs into one because the second one no longer runs any tests: rust-lang/rust#162288 (comment)
…ype_op_constraints, r=BoxyUwU

Revert "trait_selection: Keep type-op region constraints in borrowck"

This reverts rust-lang/rust#161423.

Boxy pointed out the problem after it landed: the code I touched there runs a lot, and I made it do the new region constraint work every time, even when assumptions-on-binders is off and the constraint is just `true`. So in the common case you end up paying for building and carrying around something nobody ever looks at. Fair point, and honestly I should have seen it myself while writing it. I was thinking about getting the correctness right and not really about how often those functions get called.

The plan is to revert now and then re-land the same thing with the new logic behind checks for whether AoB is actually on, so we can get a perf run and look at real numbers instead of guessing.

There is nothing clever in this PR. It is just `git revert -m 1` on the rollup merge, so the diff is the exact opposite of what went in. It applied with no conflicts on current main and `x check compiler` is fine, which I wanted to confirm because rust-lang/rust#162238 landed after this one and touches some of the same files.

r? @BoxyUwU
This updates the rust-version file to 315ecf4a939def16631c2b25c3782ad67fc22160.
@rustbot rustbot added the S-waiting-on-review Status: Waiting for a review to complete label Sep 10, 2026
@RalfJung

Copy link
Copy Markdown
Member

Oh, right, rust-lang/rust#162288 would break our CI...

@RalfJung
RalfJung enabled auto-merge September 10, 2026 06:43
@RalfJung
RalfJung added this pull request to the merge queue Sep 10, 2026
Merged via the queue into master with commit 92ea60b Sep 10, 2026
14 checks passed
@RalfJung
RalfJung deleted the rustup-2026-09-10 branch September 10, 2026 07:45
@rustbot rustbot removed the S-waiting-on-review Status: Waiting for a review to complete label Sep 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants