Skip to content

Conversation

@matthiaskrgr
Copy link
Member

@matthiaskrgr matthiaskrgr commented Dec 10, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

chenx97 and others added 29 commits November 24, 2025 11:12
MIPS64 needs to put a padding argument before an aggregate argument when
this argument is in an odd-number position, starting from 0, and has an
alignment of 16 bytes or higher, e.g.
`void foo(int a, max_align_t b);` is the same as
`void foo(int a, long _padding, max_align_t b);`

This fix uses an i32 padding, but it should work just fine because i32 is
aligned like i64 for arguments.
There are major questions remaining about the reentrancy that this
allows. It doesn't have any users on github outside of a single project
that uses it in a panic=abort project to show backtraces. It
can still be emulated through #[alloc_error_handler] or
set_alloc_error_hook depending on if you use the standard library or
not. And finally it makes it harder to do various improvements to the
allocator shim.
Update the tests, add powerpc-*-gnuspe testing, and create a distinct
clobber_abi list for PowerPC SPE targets.

Note, the SPE target does not have vector, vector-scalar, or
floating-point specific registers.
```
error[E0277]: the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time
  --> $DIR/dyn-trait-type-alias-return-type.rs:4:11
   |
LL | fn f() -> T { loop {} }
   |           ^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `(dyn Debug + 'static)`
note: this type alias is unsized
  --> $DIR/dyn-trait-type-alias-return-type.rs:1:1
   |
LL | type T = dyn core::fmt::Debug;
   | ^^^^^^
   = note: the return type of a function must have a statically known size
```
Be more faithful that they aren't always available.
Remove -Zoom=panic

There are major questions remaining about the reentrancy that this allows. It doesn't have any users on github outside of a single project that uses it in a panic=abort project to show backtraces. It can still be emulated through `#[alloc_error_handler]` or `set_alloc_error_hook` depending on if you use the standard library or not. And finally it makes it harder to do various improvements to the allocator shim.

With this PR the sole remaining symbol in the allocator shim that is not effectively emulating weak symbols is the symbol that prevents skipping the allocator shim on stable even when it would otherwise be empty because libstd + `#[global_allocator]` is used.

Closes rust-lang#43596
Fixes rust-lang#126683
…rgs, r=workingjubilee

callconv: fix mips64 aggregate argument passing for C FFI

MIPS64 needs to put a padding argument before an aggregate argument when
this argument is in an odd-number position, starting from 0, and has an
alignment of 16 bytes or higher, e.g.
`void foo(int a, max_align_t b);` is the same as
`void foo(int a, long _padding, max_align_t b);`
 Correctly provide suggestions when encountering `async fn` with a `dyn Trait` return type

Point at return type of `async fn`s instead of their def `Span`.

Correctly provide suggestions when encountering `async fn` with a `dyn Trait` return type.

Correctly address `type Alias = dyn Trait` when `fn foo() -> Alias { .. }`.

Fix rust-lang#147894.
…bzol

Run clippy on cg_gcc in CI

This is to prevent [this issue](rust-lang#149449 (comment)): in cg_gcc repository, we run clippy on our code but not in here, which can create issues.

cc ````@antoyo````
r? ````@Kobzol````
… r=Amanieu

Restrict spe_acc to PowerPC SPE targets

Update the tests, add powerpc-*-gnuspe testing, and create a distinct clobber_abi list for PowerPC SPE targets.

Note, the SPE target does not have vector, vector-scalar, or floating-point specific registers.

r? ```@Amanieu```
…nszelmann

Don't suggest wrapping attr in unsafe if it may come from proc macro

Don't emit the suggestion if the span may come from proc macro. Check this with the snippet because we cannot check if the span is from macro-rules or proc-macro (maybe this can happen in the future?).

Fixes rust-lang#149756
…bilee

Use `let`...`else` instead of `match foo { ... _ => return };` and `if let ... else return` in std

Split off rust-lang#148837.
…r=JonathanBrouwer,Kivooeo

Make typo in field and name suggestions verbose

Part of rust-lang#141973.
Add a regression test for issue 145748

Seems to be fixed while allowing non-defining usages of opaques in next-solver.

Closes rust-lang#145748
compiletest: tidy up `adb_path`/`adb_test_dir` handling

Be more faithful that they aren't always available.

try-job: arm-android
@rustbot rustbot added the A-attributes Area: Attributes (`#[…]`, `#![…]`) label Dec 10, 2025
@rustbot rustbot added A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) rollup A PR which is a rollup labels Dec 10, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Dec 10, 2025

📌 Commit bea5636 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors 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 Dec 10, 2025
@bors
Copy link
Collaborator

bors commented Dec 10, 2025

⌛ Testing commit bea5636 with merge 377656d...

@bors
Copy link
Collaborator

bors commented Dec 10, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 377656d to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 10, 2025
@bors bors merged commit 377656d into rust-lang:main Dec 10, 2025
12 checks passed
@rustbot rustbot added this to the 1.94.0 milestone Dec 10, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#147725 Remove -Zoom=panic aa0019610a4a92ff54547281184df82e62d83eff (link)
#148294 callconv: fix mips64 aggregate argument passing for C FFI 9aa594c9f8797c43c31a65cf024bb722b1d16ab6 (link)
#148491 Correctly provide suggestions when encountering async fn b65819ff64bd0ecceea1cdd3e33fcc1842be4d3c (link)
#149458 Run clippy on cg_gcc in CI 89ac1ec77373e14af6832bc3521020e56a56ec9a (link)
#149679 Restrict spe_acc to PowerPC SPE targets 99dab1dfc094bed2e2952567aef51825b560e2b0 (link)
#149781 Don't suggest wrapping attr in unsafe if it may come from p… baa4d7a100acf9dda639d388be944efc4f6e6baa (link)
#149795 Use let...else instead of `match foo { ... _ => return … c2d36f8894c6aa2f0d8846b5199c4e215aa4acfb (link)
#149816 Make typo in field and name suggestions verbose 0640135a4ba5b37b1edc124a4e4ce0756ded4611 (link)
#149824 Add a regression test for issue 145748 ecd9e094d6f549839b2dcbededb3e3b8f8c4d0c6 (link)
#149826 compiletest: tidy up adb_path/adb_test_dir handling ccbc74ac5a64062a76f1633e5c0f8e053d90ad03 (link)

previous master: bad50269f8

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing bad5026 (parent) -> 377656d (this PR)

Test differences

Show 398 test diffs

Stage 1

  • [ui] tests/ui/asm/powerpc/bad-reg.rs#powerpcspe: [missing] -> pass (J1)
  • [ui] tests/ui/async-await/async-fn/dyn-in-return-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/panics/alloc_error_hook-unwind.rs: [missing] -> pass (J1)
  • [ui] tests/ui/panics/oom-panic-unwind.rs: pass -> [missing] (J1)
  • [ui] tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm-in-2024.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/next-solver/opaques/non-defining-use-borrowck-issue-145748.rs: [missing] -> pass (J1)
  • [ui] tests/ui/type-alias/dyn-trait-type-alias-return-type.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/asm/powerpc-clobbers.rs#powerpcspe: [missing] -> pass (J6)

Stage 2

  • [ui] tests/ui/asm/powerpc/bad-reg.rs#powerpcspe: [missing] -> pass (J0)
  • [ui] tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm-in-2024.rs: [missing] -> pass (J0)
  • [ui] tests/ui/asm/powerpc/bad-reg.rs#powerpcspe: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [ui] tests/ui/panics/alloc_error_hook-unwind.rs: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [ui] tests/ui/panics/oom-panic-unwind.rs: ignore (gcc backend is marked as ignore) -> [missing] (J2)
  • [ui] tests/ui/rust-2024/unsafe-attributes/unsafe-attributes-from-pm-in-2024.rs: [missing] -> ignore (gcc backend is marked as ignore) (J2)
  • [ui] tests/ui/async-await/async-fn/dyn-in-return-type.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/next-solver/opaques/non-defining-use-borrowck-issue-145748.rs: [missing] -> pass (J3)
  • [ui] tests/ui/type-alias/dyn-trait-type-alias-return-type.rs: [missing] -> pass (J3)
  • [ui] tests/ui/panics/alloc_error_hook-unwind.rs: [missing] -> ignore (only executed when the operating system is linux) (J4)
  • [ui] tests/ui/panics/oom-panic-unwind.rs: ignore (only executed when the operating system is linux) -> [missing] (J4)
  • [ui] tests/ui/panics/alloc_error_hook-unwind.rs: [missing] -> pass (J5)
  • [ui] tests/ui/panics/oom-panic-unwind.rs: pass -> [missing] (J5)
  • [codegen] tests/codegen-llvm/asm/powerpc-clobbers.rs#powerpcspe: [missing] -> pass (J7)

Additionally, 376 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 377656d3dd3f9c23a9c8713e163f4365a5261a84 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. dist-apple-various: 3538.4s -> 4713.3s (+33.2%)
  2. dist-x86_64-apple: 8331.8s -> 6511.1s (-21.9%)
  3. dist-aarch64-apple: 7698.1s -> 9330.5s (+21.2%)
  4. x86_64-gnu-llvm-20: 2347.8s -> 2731.0s (+16.3%)
  5. aarch64-gnu-llvm-20-2: 2202.3s -> 2478.2s (+12.5%)
  6. dist-aarch64-msvc: 6044.6s -> 5325.4s (-11.9%)
  7. aarch64-apple: 8752.8s -> 9788.8s (+11.8%)
  8. armhf-gnu: 4902.2s -> 5474.8s (+11.7%)
  9. i686-gnu-nopt-2: 7886.6s -> 8678.3s (+10.0%)
  10. i686-gnu-nopt-1: 7697.5s -> 8452.9s (+9.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (377656d): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (secondary 2.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.8% [2.8%, 2.8%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

Results (primary 0.0%, secondary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 27
Regressions ❌
(secondary)
0.1% [0.0%, 0.1%] 11
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.1%] 27

Bootstrap: 472.547s -> 471.42s (-0.24%)
Artifact size: 389.02 MiB -> 389.04 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-windows Operating system: Windows rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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. 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.