Skip to content

Rollup of 14 pull requests - #164697

Closed
JonathanBrouwer wants to merge 49 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-oTpT4bD
Closed

JonathanBrouwer wants to merge 49 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-oTpT4bD

Conversation

@JonathanBrouwer

@JonathanBrouwer JonathanBrouwer commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

RalfJung and others added 30 commits September 16, 2026 16:15
Rust currently ignores LLVM diagnostic kinds that it does not know
about. This means that we sometimes ignore error diagnostics,
which can then result in silent miscompiles.

This exposes `LLVMGetDiagInfoSeverity` returning `DiagnosticSeverity`,
renamed from `DiagnosticLevel` to match LLVM terminology. Custom
code to fetch the diagnostic severity for inline asm diagnostics
can then be dropped.

For unknown diagnostics, we emit a warning/error depending on
severity. Notes and remarks continue to be ignored.

One oddity I ran into along the way is that the linker diagnostic
has severity error, but we only report a warning. I've kept this
for now as we still error down the line and this ends up providing
a bit more information (which file the duplicate symbol originates
from).
Merge the PGO, Unsupported into UnknownDiagnostic and rename it to
Other. We don't do anything special for them, so there is no need
to represent them differently.
Adds an entry for `recursion_limit` to `library/core/src/attribute_docs.rs`
using `#[doc(attribute = "...")]`.
These are especially useful for constructing types and paths referring to primitives.
It is only used in one place and it's easier to do the check directly in `debug.rs`.
Several small changes to remove some unhelpful helpers.
As I understand it, this would only be needed if the crate defining the derive macros (which is `core`) was using edition 2015.
Since `core` uses edition 2024, there is in this case no difference between global and local and we can skip the leading `::`.
Previously, `std_path` converted the given `&[Symbol]` to a `Vec<Ident>` by prepending a `$crate::` and mapping each `Symbol` to an `Ident`.
This commit changes the functions that previously took `Vec<Ident>` to directly take `Path` instead, and updates `std_path` to also directly return a `Path`. This allows directly prepending the `$crate::` to the resulting `segments`.
It also allows constructing a `Path` from `&[Ident]` instead of `Vec<Ident>`.
`new_path` is just a obsolete trivial wrapper around `cx.std_path_all` now.
Passing around `type_ident` everywhere is what the old code did as well, but it's actually only needed in two places.
And rename other places that were called `ident` but took a `Symbol` to `name` too.
…attribute, r=JohnTitor

Document the `recursion_limit` built-in attribute

Document the `recursion_limit` built-in attribute in std via
`#[doc(attribute = "recursion_limit")]`, covering:

- what the limit applies to (macro expansion, auto-dereference)
- the default (128) and how to raise it
- the diagnostics produced when the limit is reached
- a note on when raising it is appropriate

As claimed in rust-lang#157604 (comment).

Part of rust-lang#157604.
tier 3 target policy: target CPU and features must be supported by upstream backend

I am proposing we clarify this point in our tier 3 target policy: it's not enough to just generate some assembly; whatever values are set for target CPU and target features must actually be recognized by the backend.

In particular, if a target emits a warning like this when used without any `-C` flag, it does not satisfy the policy:
```
'esp32s3' is not a recognized processor for this target (ignoring processor)
```

The context here is rust-lang#162828: we landed the xtensa targets two years ago when they had basically no upstream LLVM support, and even now we have one target that uses a CPU that upstream LLVM does not recognize. I think we should consider this target as not satisfying our policy.
use default_field_values in declare_lint

Also eliminates some unreachable!() branches :)
…nt-abi-checks, r=adwinwhite

Skip redundant monomorphization checks

## Summary

This PR attempts to avoid unnecessary work during call-site ABI checks. On main, we instantiate generic arguments and normalize the callee type, but then immediately return for Rust ABIs and LLVM intrinsics.

Since the ABI doesn't depend on generic arguments, we can instead check it first and skip that preparation if the subsequent checks would be a no-op.
…=JohnTitor

doc: added addtional docs for Write

## Changes

- Added docs for `Write` with example.

Close rust-lang#164466
…de, r=JohnTitor

stabilize ExitCodeExt for Windows

Passed FCP in rust-lang#111688 (comment)

Closes rust-lang#111688
…bzol

tidy: use repository-relative path for style checks

fixes rust-lang#164567
when `remap-debuginfo = true`, `file!()` returns a remapped path that doesn't match the filesystem path used by tidy. this prevents tidy from recognizing `style.rs` as its own implementation, causing it to report style violations within the file.

**use a repository-relative path instead, consistent with the existing handling of codegen.rs.**

r? @Kobzol
cc @Urgau
…rksonn

re-enable test_dir_remove_dir test on QNX

This reverts rust-lang#163500.

The comment on that test doesn't really make sense: rust-lang#153781 is about `remove_dir_all` under concurrent mutation. The test is about `remove_dir`, and there should be no concurrent mutation while testing.

The actual problem is that the fallback implementation for `remove_dir` was buggy. (QNX has no directory handles so it uses a path-based fallback implementation.) I fixed that in rust-lang#163020. So now that the fallback implementation is fixed, we can re-enable the test on QNX. We don't test that fallback implementation at all in our CI, unfortunately.

Cc @tshepang
r? @Darksonn
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 21, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-tidy Area: The tidy tool O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. labels Oct 21, 2026
@rust-bors

rust-bors Bot commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 57ab839 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 21, 2026
@rust-bors

rust-bors Bot commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

PR #164578, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-tidy Area: The tidy tool O-windows Operating system: Windows rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.