Skip to content

Comments

Rollup of 13 pull requests#152957

Closed
jhpratt wants to merge 31 commits intorust-lang:mainfrom
jhpratt:rollup-BJ4fXl2
Closed

Rollup of 13 pull requests#152957
jhpratt wants to merge 31 commits intorust-lang:mainfrom
jhpratt:rollup-BJ4fXl2

Conversation

@jhpratt
Copy link
Member

@jhpratt jhpratt commented Feb 22, 2026

Successful merges:

r? @ghost

Create a similar rollup

Gelbpunkt and others added 30 commits January 13, 2026 15:54
…instead of guessing

All PowerPC64 targets except AIX explicitly set the ABI in the target
options. We can therefore stop hardcoding the ABI to be used based on
the target environment or OS, except for the AIX special case.

The fallback based on endianness is kept for the sake of compatibility
with custom targets.

This makes it so that big endian targets not explicitly accounted for
before (powerpc64-unknown-openbsd) and targets that don't use the
expected default ABI (ELFv2 Glibc targets) use the correct ABI in the
calling convention code.
… PowerPC64(LE)

PowerPC64 ELF targets (effectively anything that isn't AIX) use either
the ELFv1 or ELFv2 ABI. The ELFv1 ABI is only specified for big endian
targets, while ELFv2 can be used by both little- and big-endian targets.
Make sure that, if an LLVM ABI is set, it is set to one of the two. AIX
does not set an LLVM ABI name, so ensure that AIX targets don't set
anything other than an empty ABI name.
…ngth

Packed SIMD types with non-power-of-two element counts use BackendRepr::Memory
instead of BackendRepr::SimdVector. The check_simd_ptr_alignment function now
handles both cases to prevent ICEs when evaluating SIMD intrinsics in const contexts.
This commit simplifies the internal implementation of `Default` for
these two pointer types to have the same performance characteristics as
before (a side effect of changes in 131460) while avoid use of internal
private APIs of Rc/Arc. To preserve the same codegen as before some
non-generic functions needed to be tagged as `#[inline]` as well, but
otherwise the same IR is produced before/after this change.

The motivation of this commit is I was studying up on the state of
initialization of `Arc` and `Rc` and figured it'd be nicer to reduce the
use of internal APIs and instead use public stable APIs where possible,
even in the implementation itself.
The current doctest for `ProcThreadAttributeListBuilder::raw_attribute`
uses `CreatePseudoConsole`, which is only available on Windows 10
October 2018 Update and above. On older versions of Windows, the test
fails due to trying to link against a function that is not present in
the kernel32 DLL. This therefore ensures the test is still built, but
not run under the Win7 target.

Signed-off-by: Paul Mabileau <paul.mabileau@harfanglab.fr>
Anyone who distributes rustc almost certainly wants to enable this
option. It is necessary for reproducibility and for a distributed rustc
local paths are useless anyway. And finally it improves privacy if you
distribute a local build.
As can be seen locally and in CI logs (dist-i686-mingw) that code used
to trigger `static_mut_refs` warning.
…lignment is not mentioned (e.g. ':10' instead of ':<10', ':>10', or ':^1')
… once all `LintDiagnostic` items have been removed
…ec-elf-abi, r=RalfJung

rustc_target: callconv: powerpc64: Use the ABI set in target options instead of guessing

All PowerPC64 targets except AIX explicitly set the ABI in the target options. We can therefore stop hardcoding the ABI to be used based on the target environment or OS, except for the AIX special case.

The fallback based on endianness is kept for the sake of compatibility with custom targets.

This makes it so that big endian targets not explicitly accounted for before (powerpc64-unknown-openbsd) and targets that don't use the expected default ABI (big-endian ELFv2 Glibc targets) use the correct ABI in the calling convention code.

The second commit is a tiny change to validate the `llvm_abiname` set on PowerPC64(LE) targets. See the commit messages for details.

CC @RalfJung who pointed out the missing `llvm_abiname` validation
… r=RalfJung

Fix ICE in const eval of packed SIMD types with non-power-of-two element counts

fixes rust-lang#151537

const evaluation of packed SIMD types with non-power-of-two element counts (like `Simd<_, 3>`) was hitting an ICE. the issue was in `check_simd_ptr_alignment` - it asserted that `backend_repr` must be `BackendRepr::SimdVector`, but for packed SIMD types with non-power-of-two counts the compiler uses `BackendRepr::Memory` instead (as mentioned in `rustc_abi/src/layout.rs:1511`).

was fixed by making `check_simd_ptr_alignment` accept both `BackendRepr::SimdVector` and `BackendRepr::Memory` for SIMD types. added a check to ensure we're dealing with a SIMD type, and the alignment logic works the same for both representations.

also i added a test that reproduces the original ICE.
…s, r=BoxyUwU

don't use env with infer vars

This is a change lcnr added on top of rust-lang@5bd20bb but we decided that it's a separate change for a separate problem. So, filed as a separate PR. Lcnr asked me to r? @BoxyUwU to take a look so hiii boxy :3
…lt, r=joboet

Simplify internals of `{Rc,Arc}::default`

This commit simplifies the internal implementation of `Default` for these two pointer types to have the same performance characteristics as before (a side effect of changes in rust-lang#131460) while avoid use of internal private APIs of Rc/Arc. To preserve the same codegen as before some non-generic functions needed to be tagged as `#[inline]` as well, but otherwise the same IR is produced before/after this change.

The motivation of this commit is I was studying up on the state of initialization of `Arc` and `Rc` and figured it'd be nicer to reduce the use of internal APIs and instead use public stable APIs where possible, even in the implementation itself.
Fixed ByteStr not padding within its Display trait when no specific alignment is mentioned

Fixes rust-lang#152804. `Path`'s `Display` uses `ByteStr`'s `Display`, which is where the problem was occurring.

The issue was coming from `ByteStr` implementation of `fmt()` in this particular area:
```rust
        let Some(align) = f.align() else {
            return fmt_nopad(self, f);
        };
        let nchars: usize = self
            .utf8_chunks()
            .map(|chunk| {
                chunk.valid().chars().count() + if chunk.invalid().is_empty() { 0 } else { 1 }
            })
            .sum();
        let padding = f.width().unwrap_or(0).saturating_sub(nchars);
        let fill = f.fill();
        let (lpad, rpad) = match align {
            fmt::Alignment::Left => (0, padding),
            fmt::Alignment::Right => (padding, 0),
            fmt::Alignment::Center => {
                let half = padding / 2;
                (half, half + padding % 2)
            }
        };
```

The docs for the align implies that `Alignment::Left`, `Alignment::Right`, `Alignment::Center` comes from `:<`, `:>`, and `:^` respectively with `align()` returning `None` if neither of those symbols are used in the formatted string. However, while padding is taken care of in the aligned cases, we could still have padding for things that don't use alignment like:
```rust
assert_eq!(format!("{:10}", Path::new("/foo/bar").display()), "/foo/bar  ");
```
We shouldn't write to `f` and return from there when there's no alignment; we should also include any potential padding/filling bytes here.

r? @joboet
…o, r=Kobzol

Enable rust.remap-debuginfo in the dist profile

Anyone who distributes rustc almost certainly wants to enable this option. It is necessary for reproducibility and for a distributed rustc local paths are useless anyway. And finally it improves privacy if you distribute a local build.
…tes-doctest, r=joboet

Test(lib/win/proc): Skip `raw_attributes` doctest under Win7

The current doctest for `ProcThreadAttributeListBuilder::raw_attribute` uses `CreatePseudoConsole`, which is only available on Windows 10 October 2018 Update and above. On older versions of Windows, the test fails due to trying to link against a function that is not present in the kernel32 DLL. This therefore ensures the test is still built, but not run under the Win7 target.

@rustbot label T-libs A-process A-doctests O-windows-7
fix typo in `carryless_mul` macro invocation

This wouldn't really impact anyone, but it's slightly confusing, so let's fix it.
…rs-const-caller, r=dingxiangfei2009

fix(codegen): Use `body_codegen_attrs` For Caller In `adjust_target_feature_sig`

### Summary:

#### Problem:

Coercing a `#[target_feature]` `const fn` to a function pointer inside a `const` body triggers an ICE (debug builds only):

```rust
#[target_feature(enable = "sse2")]
const fn with_target_feature() {}

const X: () = unsafe {
    let _: unsafe fn() = with_target_feature; // ICE
};
```

```text
assertion failed: def_kind.has_codegen_attrs()
unexpected `def_kind` in `codegen_fn_attrs`: Const
```

#### Root Cause:

Introduced in rust-lang#135504 (2025-01-14, commit `8fee6a77394`). `adjust_target_feature_sig` unconditionally calls `codegen_fn_attrs(caller)` to get the caller's target features. `codegen_fn_attrs` requires that the `DefId` satisfies `has_codegen_attrs()`. `DefKind::Const`, `AssocConst`, and `InlineConst` do not — they have no codegen attributes by design. The debug assertion fires.

In release builds the call "worked" accidentally: `codegen_fn_attrs` on a const would reach the query machinery and happen to return empty attributes, producing a correct (but unguaranteed) result. The bug was latent until debug builds exposed it.

#### Solution:

Replace `codegen_fn_attrs(caller)` with `body_codegen_attrs(caller)`. `body_codegen_attrs` exists precisely for this case: it delegates to `codegen_fn_attrs` for function-like `DefKind`s and returns `CodegenFnAttrs::EMPTY` for const items. A const body has no target features, so returning empty is semantically correct.

Also fix the pre-existing variable name `callee_features` → `caller_features` (the variable holds the *caller*'s features, not the callee's).

### Changes:

- `compiler/rustc_middle/src/ty/context.rs`: `adjust_target_feature_sig` — use `body_codegen_attrs` for `caller`; rename `callee_features` → `caller_features`.
- `tests/ui/target-feature/const-target-feature-fn-ptr-coercion.rs`: regression test covering `Const`, `AssocConst`, and `InlineConst` caller contexts.

Fixes rust-lang#152340.
… r=joboet

Fix warnings in rs{begin,end}.rs files

As can be seen locally and in CI logs (dist-i686-mingw) that code used to trigger `static_mut_refs` warning.
…r=Kobzol

Add build.rustdoc option to bootstrap config

This adds a bootstrap config option `build.rustdoc` to be able to override the stage0 `rustdoc` binary. When unspecified, this defaults to the existing behavior of using the `rustdoc` binary in the same directory as `rustc`, making this a backward-compatible change.

### Motivation

The existing behavior does not seem to be documented and can be surprising. By adding the new option, the behavior gets documented in `bootstrap.example.toml`.

I ran into this because I was experimenting with a build with a configuration like this:
```
build.rustc = "/usr/bin/rustc-1.92"
build.cargo = "/usr/bin/cargo-1.92"
```
This was on Ubuntu where the packages `rustc-1.92` and `cargo-1.92` place symlinks at these locations. This resulted in failure as the bootstrap process tried to run doc tests on `tidy` using a binary `/usr/bin/rustdoc` which did not exist. It took some digging to understand where that path `/usr/bin/rustdoc` was coming from.

@rustbot label +A-bootstrap-config
…tdiag, r=JonathanBrouwer

Start migration for `LintDiagnostic` items by adding API and migrating `LinkerOutput` lint

This is more or less the same approach as rust-lang#152811, but in a much smaller size to make it reviewable. A lot of PRs will follow though. :)

This PR creates the equivalent of `lint_level` working with `Diagnostic` and add new methods on `MultiSpan` to make it work as well (in particular because we need to copy messages/spans from one context to another).

r? @JonathanBrouwer
remove unneeded reboxing

Just a small thing I noticed while experimenting with replacing `box_syntax` with `deref_patterns` in the compiler.
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Feb 22, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic 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-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure 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. labels Feb 22, 2026
@jhpratt
Copy link
Member Author

jhpratt commented Feb 22, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 22, 2026

📌 Commit cd667c5 has been approved by jhpratt

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 Feb 22, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Feb 22, 2026
Rollup of 13 pull requests

Successful merges:

 - #150468 (rustc_target: callconv: powerpc64: Use the ABI set in target options instead of guessing)
 - #151628 (Fix ICE in const eval of packed SIMD types with non-power-of-two element counts)
 - #151871 (don't use env with infer vars)
 - #152591 (Simplify internals of `{Rc,Arc}::default`)
 - #152865 (Fixed ByteStr not padding within its Display trait when no specific alignment is mentioned)
 - #152908 (Enable rust.remap-debuginfo in the dist profile)
 - #152705 (Test(lib/win/proc): Skip `raw_attributes` doctest under Win7)
 - #152767 (fix typo in `carryless_mul` macro invocation)
 - #152837 (fix(codegen): Use `body_codegen_attrs` For Caller In `adjust_target_feature_sig`)
 - #152871 (Fix warnings in rs{begin,end}.rs files)
 - #152921 (Add build.rustdoc option to bootstrap config)
 - #152933 (Start migration for `LintDiagnostic` items by adding API and migrating `LinkerOutput` lint)
 - #152937 (remove unneeded reboxing)
@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-distcheck failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
##[group]Runner Image Provisioner
Hosted Compute Agent
Version: 20260123.484
Commit: 6bd6555ca37d84114959e1c76d2c01448ff61c5d
Build Date: 2026-01-23T19:41:17Z
Worker ID: {bbbaa421-f492-44c4-85d6-51ef041824dc}
Azure Region: westcentralus
##[endgroup]
##[group]Operating System
Ubuntu
24.04.3
LTS
---
REPOSITORY                                   TAG       IMAGE ID       CREATED       SIZE
ghcr.io/dependabot/dependabot-updater-core   latest    b72a662c47e3   3 weeks ago   790MB
=> Removing docker images...
Deleted Images:
untagged: ghcr.io/dependabot/dependabot-updater-core:latest
untagged: ghcr.io/dependabot/dependabot-updater-core@sha256:57ef9cc45f72cc4258ee1baa8243bc3cd55c0a0e570b6768c37346247be35f0d
deleted: sha256:b72a662c47e31df2e7bf59368b2b83be239f02a1baa721393717711a1a719df9
deleted: sha256:3e13ccd80f19769f39008cfc6549938e1ea4905f47b028c1df2dd6085191386c
deleted: sha256:842807995a512b2c5a9b241a3aecdbe79af6b0642d96fa5460cfcf0c9d8be295
deleted: sha256:0f9074b9f46f4570eb7cb4b65fcb3c3d909f9b1d14ca66b30508117b6deda303
deleted: sha256:2ca99cb9251d19157c56b5d91c8961bb4b35196a5ca9b4ffdccbf24abbfe2a5f
---
fmt error: Not running formatting checks; rustfmt.toml does not exist.
fmt error: This may happen in distributed tarballs.
tidy check
fatal: not a git repository (or any of the parent directories): .git
tidy [CI history]: failed to retrieve base commit: command did not execute successfully: "git" "rev-list" "--author-date-order" "--author=bors@rust-lang\\.org" "-n1" "HEAD" "--author" "122020455+rust-bors\\[bot\\]@users\\.noreply\\.github\\.com"
expected success, got: exit status: 128
. Some checks will be skipped.
tidy [gcc_submodule]: Cannot figure out the SHA of the GCC submodule
tidy: All tidy checks succeeded
x.py completions check
---
[183/3898] Building ASM object lib/Support/BLAKE3/CMakeFiles/LLVMSupportBlake3.dir/blake3_avx512_x86-64_unix.S.o
[184/3898] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/zOSLibFunctions.cpp.o
[185/3898] Building C object lib/Support/BLAKE3/CMakeFiles/LLVMSupportBlake3.dir/blake3.c.o
[186/3898] Building C object lib/Support/BLAKE3/CMakeFiles/LLVMSupportBlake3.dir/blake3_dispatch.c.o
[187/3898] Building CXX object lib/Support/LSP/CMakeFiles/LLVMSupportLSP.dir/Transport.cpp.o
[188/3898] Linking CXX static library lib/libLLVMSupport.a
[189/3898] Building CXX object lib/Support/LSP/CMakeFiles/LLVMSupportLSP.dir/Protocol.cpp.o
[190/3898] Building CXX object lib/Support/LSP/CMakeFiles/LLVMSupportLSP.dir/Logging.cpp.o
[191/3898] Linking CXX static library lib/libLLVMSupportLSP.a
[192/3898] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Error.cpp.o
[193/3898] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/DetailedRecordsBackend.cpp.o
[194/3898] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Main.cpp.o
[195/3898] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/JSONBackend.cpp.o
[196/3898] Building CXX object lib/TableGen/CMakeFiles/LLVMTableGen.dir/Record.cpp.o
---
[228/3898] Building TargetLibraryInfo.inc...
[229/3898] Building GenVT.inc...
[230/3898] Building Attributes.inc...
[231/3898] Building RuntimeLibcalls.inc...
[232/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/BuiltinCAS.cpp.o
[233/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/BuiltinUnifiedCASDatabases.cpp.o
[234/3898] Building IntrinsicEnums.inc...
[235/3898] Building IntrinsicImpl.inc...
[236/3898] Building IntrinsicsAMDGPU.h...
[237/3898] Building IntrinsicsAArch64.h...
[238/3898] Building IntrinsicsLoongArch.h...
---
[427/3898] Building CXX object lib/InterfaceStub/CMakeFiles/LLVMInterfaceStub.dir/IFSStub.cpp.o
[428/3898] Building CXX object lib/InterfaceStub/CMakeFiles/LLVMInterfaceStub.dir/ELFObjHandler.cpp.o
[429/3898] Building CXX object lib/IRPrinter/CMakeFiles/LLVMIRPrinter.dir/IRPrintingPasses.cpp.o
[430/3898] Building CXX object lib/IRReader/CMakeFiles/LLVMIRReader.dir/IRReader.cpp.o
[431/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/OnDiskCAS.cpp.o
[432/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/OnDiskCommon.cpp.o
[433/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/OnDiskDataAllocator.cpp.o
[434/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/OnDiskGraphDB.cpp.o
[435/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/OnDiskKeyValueDB.cpp.o
[436/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/OnDiskTrieRawHashMap.cpp.o
[437/3898] Building CXX object lib/CAS/CMakeFiles/LLVMCAS.dir/UnifiedOnDiskCache.cpp.o
[438/3898] Building CXX object lib/CGData/CMakeFiles/LLVMCGData.dir/CodeGenDataReader.cpp.o
[439/3898] Linking CXX static library lib/libLLVMCAS.a
[440/3898] Building CXX object lib/CGData/CMakeFiles/LLVMCGData.dir/CodeGenData.cpp.o
[441/3898] Building CXX object lib/CGData/CMakeFiles/LLVMCGData.dir/CodeGenDataWriter.cpp.o
[442/3898] Building CXX object lib/CGData/CMakeFiles/LLVMCGData.dir/OutlinedHashTree.cpp.o
---
[1285/3898] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueLattice.cpp.o
[1286/3898] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueLatticeUtils.cpp.o
[1287/3898] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/ValueTracking.cpp.o
[1288/3898] Building CXX object lib/Analysis/CMakeFiles/LLVMAnalysis.dir/VectorUtils.cpp.o
[1289/3898] Building CXX object lib/DTLTO/CMakeFiles/LLVMDTLTO.dir/DTLTO.cpp.o
[1290/3898] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOBackend.cpp.o
[1291/3898] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTO.cpp.o
[1292/3898] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOModule.cpp.o
[1293/3898] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/LTOCodeGenerator.cpp.o
[1294/3898] Building CXX object lib/LTO/CMakeFiles/LLVMLTO.dir/ThinLTOCodeGenerator.cpp.o
---
[2142/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMacroFusion.cpp.o
[2143/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMCInstLower.cpp.o
[2144/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMCResourceInfo.cpp.o
[2145/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUIGroupLP.cpp.o
[2146/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPULowerVGPREncoding.cpp.o
[2147/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMarkLastScratchLoad.cpp.o
[2148/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUMIRFormatter.cpp.o
[2149/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPerfHintAnalysis.cpp.o
[2150/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPostLegalizerCombiner.cpp.o
[2151/3898] Building CXX object lib/Target/AMDGPU/CMakeFiles/LLVMAMDGPUCodeGen.dir/AMDGPUPrintfRuntimeBinding.cpp.o
---
[2808/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVVectorPeephole.cpp.o
[2809/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVVectorMaskDAGMutation.cpp.o
[2810/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVVLOptimizer.cpp.o
[2811/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVVMV0Elimination.cpp.o
[2812/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVVSETVLIInfoAnalysis.cpp.o
[2813/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVZacasABIFix.cpp.o
[2814/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVZilsdOptimizer.cpp.o
[2815/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVCallLowering.cpp.o
[2816/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVLegalizerInfo.cpp.o
[2817/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVPostLegalizerCombiner.cpp.o
[2818/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVO0PreLegalizerCombiner.cpp.o
[2819/3898] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVPreLegalizerCombiner.cpp.o
---
[3602/3898] Linking CXX executable bin/llvm-extract
[3603/3898] Linking CXX executable bin/llvm-ifs
[3604/3898] Building CXX object tools/llvm-jitlink/CMakeFiles/llvm-jitlink.dir/llvm-jitlink.cpp.o
[3605/3898] Building CXX object tools/llvm-isel-fuzzer/CMakeFiles/llvm-isel-fuzzer.dir/DummyISelFuzzer.cpp.o
[3606/3898] Building CXX object tools/llvm-ir2vec/CMakeFiles/llvm-ir2vec.dir/llvm-ir2vec.cpp.o
[3607/3898] Building CXX object tools/llvm-isel-fuzzer/CMakeFiles/llvm-isel-fuzzer.dir/llvm-isel-fuzzer.cpp.o
[3608/3898] Building CXX object tools/llvm-jitlink/CMakeFiles/llvm-jitlink.dir/llvm-jitlink-elf.cpp.o
[3609/3898] Building CXX object tools/llvm-jitlink/CMakeFiles/llvm-jitlink.dir/llvm-jitlink-coff.cpp.o
[3610/3898] Linking CXX executable bin/llvm-exegesis
[3611/3898] Building CXX object tools/llvm-itanium-demangle-fuzzer/CMakeFiles/llvm-itanium-demangle-fuzzer.dir/DummyDemanglerFuzzer.cpp.o
---
[3792/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/ReduceVirtualRegisters.cpp.o
[3793/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/ReduceRegisterMasks.cpp.o
[3794/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/ReduceRegisterDefs.cpp.o
[3795/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/ReduceRegisterUses.cpp.o
[3796/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/ReduceSinkDefsToUses.cpp.o
[3797/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/ReduceTargetFeaturesAttr.cpp.o
[3798/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/ReduceUsingSimplifyCFG.cpp.o
[3799/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/SimplifyInstructions.cpp.o
[3800/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/RunIRPasses.cpp.o
[3801/3898] Building CXX object tools/llvm-reduce/CMakeFiles/llvm-reduce.dir/deltas/StripDebugInfo.cpp.o
---
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/DWARFLinker/DWARFLinkerBase.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/DWARFLinker/DWARFFile.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/DWARFLinker/Parallel
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/DWARFLinker/Parallel/DWARFLinker.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/DTLTO
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/DTLTO/DTLTO.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/TargetParser
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/TargetParser/X86TargetParser.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/TargetParser/Triple.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/TargetParser/ARMTargetParserCommon.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/TargetParser/SubtargetFeature.h
---
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/Plugins
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/Plugins/PassPlugin.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/BuiltinCASContext.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/CASReference.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/OnDiskKeyValueDB.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/OnDiskGraphDB.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/FileOffset.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/OnDiskTrieRawHashMap.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/ObjectStore.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/UnifiedOnDiskCache.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/BuiltinUnifiedCASDatabases.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/BuiltinObjectHasher.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/CASID.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/ActionCache.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/MappedFileRegionArena.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/CAS/OnDiskDataAllocator.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/ToolDrivers
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/ToolDrivers/llvm-lib
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/ToolDrivers/llvm-dlltool
-- Installing: /tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
---
---- [ui] tests/rustdoc-ui/ice-bug-report-url.rs stdout ----
Saved the actual stderr to `/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/ice-bug-report-url/ice-bug-report-url.stderr`
diff of stderr:

5    |          ^ expected one of `->`, `where`, or `{`
6 
7 
- 
+ thread 'rustc' ($TID) panicked at /rustc-dev/57c8787916e0481d8ce3dd2b3bf2ae821d67a67f/compiler/rustc_errors/src/lib.rs:1531:17:
9 aborting due to `-Z treat-err-as-bug=1`
10 stack backtrace:
11 

Note: some mismatched output was normalized before being compared
- thread 'rustc' (437669) panicked at /rustc-dev/57c8787916e0481d8ce3dd2b3bf2ae821d67a67f/compiler/rustc_errors/src/lib.rs:1531:17:
+ thread 'rustc' ($TID) panicked at /rustc-dev/57c8787916e0481d8ce3dd2b3bf2ae821d67a67f/compiler/rustc_errors/src/lib.rs:1531:17:


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args ice-bug-report-url.rs`

error: 1 errors occurred comparing output.
status: exit status: 101
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/ice-bug-report-url.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/tmp/distcheck/distcheck-rustc-src/vendor" "--sysroot" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/ice-bug-report-url" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "-Ztreat-err-as-bug"
stdout: none
--- stderr -------------------------------
error: internal compiler error: expected one of `->`, `where`, or `{`, found `<eof>`
##[error]  --> /tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/ice-bug-report-url.rs:12:10
   |
LL | fn wrong()
   |          ^ expected one of `->`, `where`, or `{`


thread 'rustc' (437669) panicked at /rustc-dev/57c8787916e0481d8ce3dd2b3bf2ae821d67a67f/compiler/rustc_errors/src/lib.rs:1531:17:
aborting due to `-Z treat-err-as-bug=1`
stack backtrace:
---
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: the compiler unexpectedly panicked. This is a bug

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-rustdoc&template=ice.md

note: please make sure that you have updated to the latest nightly

note: rustc 1.95.0-nightly (57c878791 2026-02-22) (built from a source tarball) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z threads=1 -Z simulate-remapped-rust-src-base=/rustc/FAKE_PREFIX -Z translate-remapped-path-to-local-path=no -Z ignore-directory-in-diagnostics-source-blocks=/cargo -Z ignore-directory-in-diagnostics-source-blocks=/tmp/distcheck/distcheck-rustc-src/vendor -C codegen-units=1 -Z ui-testing -Z deduplicate-diagnostics=no -Z write-long-types-to-disk=no -C strip=debuginfo -C debuginfo=0 -Z treat-err-as-bug

query stack during panic:
end of query stack
------------------------------------------

---
To only update this specific test, also pass `--test-args track-diagnostics.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/track-diagnostics.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/tmp/distcheck/distcheck-rustc-src/vendor" "--sysroot" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/tmp/distcheck/distcheck-rustc-src/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/track-diagnostics" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "-Z" "track-diagnostics"
stdout: none
--- stderr -------------------------------
error[E0308]: mismatched types
##[error]  --> /tmp/distcheck/distcheck-rustc-src/tests/rustdoc-ui/track-diagnostics.rs:10:18
   |
---
test result: FAILED. 357 passed; 2 failed; 5 ignored; 0 measured; 0 filtered out; finished in 31.26s

Some tests failed in compiletest suite=rustdoc-ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-unknown-linux-gnu
Build completed unsuccessfully in 1:21:47
make: *** [Makefile:49: check] Error 1
Command `make check [workdir=/tmp/distcheck/distcheck-rustc-src]` failed with exit code 2
Created at: src/bootstrap/src/core/build_steps/test.rs:3423:5
Executed at: src/bootstrap/src/core/build_steps/test.rs:3429:10

Command has failed. Rerun with -v to see more details.
Bootstrap failed while executing `test distcheck`
Build completed unsuccessfully in 1:29:24
  local time: Sun Feb 22 08:17:08 UTC 2026
  network time: Sun, 22 Feb 2026 08:17:09 GMT
##[error]Process completed with exit code 1.

@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 Feb 22, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 22, 2026

💔 Test for 57c8787 failed: CI. Failed job:

@jhpratt jhpratt closed this Feb 22, 2026
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 22, 2026
@rust-bors rust-bors bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Feb 22, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 22, 2026

PR #152921, which is a member of this rollup, was unapproved.
This rollup was thus also unapproved.

@jhpratt jhpratt deleted the rollup-BJ4fXl2 branch February 22, 2026 08:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic O-windows Operating system: Windows rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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-infra Relevant to the infrastructure 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.