Skip to content

Rollup of 29 pull requests - #162221

Closed
Zalathar wants to merge 80 commits into
rust-lang:mainfrom
Zalathar:rollup-FgUkFlf
Closed

Rollup of 29 pull requests#162221
Zalathar wants to merge 80 commits into
rust-lang:mainfrom
Zalathar:rollup-FgUkFlf

Conversation

@Zalathar

@Zalathar Zalathar commented Sep 3, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

chenyukang and others added 30 commits August 27, 2026 12:25
Previously, these tests were testing the wrong feature gate,
and had unnecessary type errors.
This is done so that we can test whether the location used is at
the function call site or the await site.
Co-authored-by: Ralf Jung <post@ralfj.de>
- Rename `generate_*` functions to `emit_*`, since they emit LLVM globals
- Consistently use qualified paths in `counter_for_term`
- Remove an unnecessary Clone from `llvm_cov::Regions`
One of the key tasks in coverage codegen is to take the source-code spans that
were recorded during MIR instrumentation, and resolve them to physical
coordinates in their respective files.

In rare cases this resolution can fail, which leads to the awkward possibility
that a function might lose _all_ of its mappings for a particular
file/expansion. If that happens, we need to avoid emitting a covfun file
section containing no regions, because doing so would trigger errors in LLVM.

The existing code does handle this edge case, but in a way that won't
generalise to multiple files/expansions. Having an explicit intermediate
resolution step will make it easier to add support for expansion regions in the
future.
`suggest_fn_call` only fired when the failing obligation came from
`ObligationCauseCode::FunctionArg`, so a fn item or closure used as the
iterator of a `for` loop got no structured suggestion to call it.

the iterator of a `for` loop is passed to `IntoIterator::into_iter`, so the
failing `Iterator` goal is a derived obligation and the cause span carries the
loop desugaring, which makes `can_be_used_for_suggestions` return false. carry
the `HirId` of the iterator expression in `ObligationCauseCode::ForLoopIterator`
and gate the suggestion on the span of that expression instead.

rust-lang#161564
dereferencing an uncalled function only said the function type cannot be
dereferenced. it now suggests the call, gated on the return type actually
being dereferenceable.

rust-lang#161564 (comment)
…low`

VxWorks' libc defines no `O_NOFOLLOW`, so building std for
x86_64-wrs-vxworks stopped compiling once `set_perm_nofollow` was
consolidated into `sys/fs/unix.rs` without a vxworks guard. VxWorks also
has no way to express a no-follow permission change: its `fchmodat`
rejects `AT_SYMLINK_NOFOLLOW` with `ENOTSUP`. Return `Unsupported`,
matching the existing Android stub.
Make it also enabled by default just like it is for clang.
Our `LLVMRustVersion*` functions get hard-coded `LLVM_VERSION_*` values
when we build `RustWrapper.cpp`, but this could be different than the
actual LLVM library at runtime. This should never happen with toolchains
from `rustup`, but with external LLVM in a distro build, for example,
`rustc` and `LLVM` can be upgraded independently.

Most of the time when we check the LLVM version, we're only looking at
the major version anyway, and we already assert that these are equal in
`configure_llvm`. However, for anything that does check the minor or
patch version too, the runtime version is probably more relevant.
`LoweringContext` has 14 fields that get swapped in and out in
`with_hir_id_owner`. This is fragile and gross. This commit moves those
fields into a new struct, `PerOwnerLoweringState`, which means they can
be swapped in and out cleanly.

Other changes:
- All `self.foo` accesses to those 14 fields become `self.curr_owner.foo`.
- Field renames:
  - `current_hir_id_owner` -> `owner_id`
  - `current_disambiguator` -> `disambiguator`
- `LoweringContext::make_owner_info` becomes
  `PerOwnerLoweringState::into_owner_info`; this makes sense because
  it consumes the `PerOwnerLoweringState`.
- Stronger assertions: `into_owner_info` has assertions that now apply
  to the `with_lctx` path as well as the `with_hir_id_owner` path.
because "g" is used for __ibm128, __float128 gets a custom name
@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like O-windows Operating system: Windows PG-exploit-mitigations Project group: Exploit mitigations 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-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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Sep 3, 2026
@Zalathar

Zalathar commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

Rollup of everything.

@bors r+ rollup=never p=5

Queue is pretty large, so running some try jobs in advance:

@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-bors Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 27fa4d8 has been approved by Zalathar

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. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 3, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Sep 3, 2026
Rollup of 29 pull requests


try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-bors

rust-bors Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: dc8a424 (dc8a4247c6acab9a030b07b46d294074f812ccbf)
Base parent: 2e2b193 (2e2b193f8ada105f27608b7be81c293e0d7292cb)

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Sep 3, 2026
Rollup of 29 pull requests

Successful merges:

 - #161694 (add `Complex` ABI run-make test)
 - #162014 (Move more `rustdoc-html` tests using `--test` into the right folder)
 - #162164 (Revert "Implement Debug for C-like enums with a concatenated string")
 - #160564 (volatile: allow accesses to non-AM memory to trap)
 - #161579 (suggest calling a fn item used as the iterator of a `for` loop)
 - #162044 (coverage: Resolve spans to file-coordinates in a separate step)
 - #162120 (Introduce `PerOwnerLoweringState`)
 - #162132 (std: improve safety documentation in UNIX stack overflow code)
 - #162151 (Test itanium mangling of `f16` and `f128`)
 - #162162 (Don't special-case `!` in stability checks anymore)
 - #162181 (Remove wrong UnusedBraces lint for iterator loop in edition 2024 )
 - #162187 (Rename `thir::ExprKind::Use` to `ValueExpr`)
 - #158401 (mgca: Don't ICE when evaluating ValTrees that contain error constants)
 - #159873 (fuchsia: Add safestack as a supported sanitizer for x86_64 fuchsia)
 - #161847 (Preserve visibility in nested macro import suggestions)
 - #161951 (Windows: add fallback if `canonicalize` fails)
 - #161972 (Improve tests for `#[track_caller]` in async)
 - #162008 (Render the `box` pattern removal diagnostic more actionable & remove `box` expression recovery)
 - #162065 (std: don't reference `libc::O_NOFOLLOW` on VxWorks in `set_perm_nofollow`)
 - #162076 (docs(num): clarify conditions under which error occurs in `impl TryFrom<int> for int`)
 - #162152 (Revert "retrieve supported GCC targets from the sysroot")
 - #162153 (Prefer `LLVMGetVersion` for runtime info)
 - #162168 (fix ICE in project_goals/inherent)
 - #162171 (Explain LoongArch f16 NaN-boxing in inline asm)
 - #162173 (fix supposedly unreachable `bug!` being reachable)
 - #162180 (remove outdated next-solver FIXMEs)
 - #162191 (core: mark float `ClampBounds` methods as `#[inline]`)
 - #162195 (docs(time): clarify exact seconds for week and day)
 - #162199 (docs(time): clarify exact seconds for hour and minute)
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job dist-aarch64-msvc failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
 Documenting std_detect v0.1.5 (C:\a\rust\rust\library\std_detect)
warning: unresolved link to `QueryDosDeviceW`
    --> /rustc/d24e6b9c9201a1e4bfb17ea84242f68414f5f0aa/library/std\src\sys\fs\windows.rs:1631:34
     |
1631 | /// Then for each drive we use [`QueryDosDeviceW`] to see the NT path that drive resolves to.
     |                                  ^^^^^^^^^^^^^^^ no item named `QueryDosDeviceW` in scope
     |
     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`
     = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default

warning: unresolved link to `QueryDosDeviceW`
    --> /rustc/d24e6b9c9201a1e4bfb17ea84242f68414f5f0aa/library/std\src\sys\fs\windows.rs:1636:7
     |
1636 | /// [`QueryDosDeviceW`]:
     |       ^^^^^^^^^^^^^^^ no item named `QueryDosDeviceW` in scope
     |
     = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]`

error: `std` (lib doc) generated 2 warnings
error: warnings are denied by `build.warnings` configuration
warning: build failed, waiting for other jobs to finish...
Command `C:\a\rust\rust\build\aarch64-pc-windows-msvc\stage0\bin\cargo.exe doc --target aarch64-pc-windows-msvc -Zbinary-dep-depinfo -j 4 -Zroot-dir=C:\a\rust\rust -Ztrim-paths --config profile.release.trim-paths='all' --config profile.dev.trim-paths='all' -Zembed-metadata=no --locked --color=always --profile=dist -p alloc -p compiler_builtins -p core -p panic_abort -p panic_unwind -p proc_macro -p profiler_builtins -p rustc-std-workspace-core -p std -p std_detect -p sysroot -p test -p unwind --features 'backtrace panic-unwind profiler compiler-builtins-c' --manifest-path C:\a\rust\rust\library/sysroot/Cargo.toml --no-deps --target-dir C:\a\rust\rust\build\aarch64-pc-windows-msvc\stage1-std\aarch64-pc-windows-msvc\json-doc -Zskip-rustdoc-fingerprint -Zrustdoc-map -Zunstable-options --output-format json [workdir=C:\a\rust\rust]` failed with exit code 101
Created at: src\bootstrap\src\core\build_steps\doc.rs:829:21
Executed at: src\bootstrap\src\core\build_steps\doc.rs:760:30

Command has failed. Rerun with -v to see more details.
Bootstrap failed while executing `dist bootstrap --include-default-paths`
Currently active steps:
dist::JsonDocs { build_compiler: Compiler { stage: 1, host: aarch64-pc-windows-msvc, forced_compiler: false }, target: aarch64-pc-windows-msvc } at src\bootstrap\src\core\build_steps\dist.rs:160
doc::Std { build_compiler: Compiler { stage: 1, host: aarch64-pc-windows-msvc, forced_compiler: false }, target: aarch64-pc-windows-msvc, format: Json, crates: [] } at src\bootstrap\src\core\build_steps\dist.rs:168
Build completed unsuccessfully in 0:54:58
  local time: Thu Sep  3 10:22:24 CUT 2026

@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 3, 2026
@rust-bors

rust-bors Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

💔 Test for d24e6b9 failed: CI. Failed job:

@rust-bors rust-bors Bot added 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. labels Sep 3, 2026
@rust-bors

rust-bors Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

PR #161951, which is a member of this rollup, was 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 Sep 3, 2026
@Zalathar
Zalathar deleted the rollup-FgUkFlf branch September 3, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc O-unix Operating system: Unix-like O-windows Operating system: Windows PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.