Skip to content

Rollup of 15 pull requests - #162188

Closed
Zalathar wants to merge 45 commits into
rust-lang:mainfrom
Zalathar:rollup-KHsVEkn
Closed

Rollup of 15 pull requests#162188
Zalathar wants to merge 45 commits into
rust-lang:mainfrom
Zalathar:rollup-KHsVEkn

Conversation

@Zalathar

@Zalathar Zalathar commented Sep 2, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

arferreira and others added 30 commits August 13, 2026 14:52
Signed-off-by: arferreira <arfs.antonio@gmail.com>
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
Co-authored-by: mejrs <59372212+mejrs@users.noreply.github.com>
The psABI leaves the upper bits of a widened f16 value undefined, so
the NaN-boxing here isn't ABI-required. It's intentional: it matches
LLVM's own codegen and avoids an f16 value being mistaken for a valid
f32 value. Update the comment to reflect this.
…wiser

Prefer `LLVMGetVersion` for runtime info

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.
fix ICE in project_goals/inherent

I'm a silly goose. The next solver has the exact same bug as rust-lang#161858 - merely enabling next-solver on the test added in that PR causes an ICE 🙃

ICE was technically introduced by rust-lang#161929 but this bug has always been present, it's just that PR explicitly tracked things better and ICEd on the bug instead of silently continuing.

fixes rust-lang#162147

explanation: `push_const_arg_has_type_goal` expects its term to have rebased, `impl`-format args, not `Self` format args. See doc comment on `AliasConstKind::InherentSelf` for what "impl format" and "self format" mean: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_type_ir/enum.AliasConstKind.html#variant.InherentSelf

r? @BoxyUwU since we chatted about this yesterday but honestly anyone vaguely t-types and/or const-generics feel free to review as well, should be relatively straightforward!
…tdev

Explain LoongArch f16 NaN-boxing in inline asm

The psABI leaves the upper bits of a widened f16 value undefined, so the NaN-boxing here isn't ABI-required. It's intentional: it matches LLVM's own codegen and avoids an f16 value being mistaken for a valid f32 value. Update the comment to reflect this.

r? @folkertdev
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 2, 2026
@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 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Sep 2, 2026
@Zalathar

Zalathar commented Sep 2, 2026

Copy link
Copy Markdown
Member Author

This rollup is mainly for running advance try jobs, but I'll also put it in the queue at low-priority to make it more visible.

@bors r+ rollup=never p=0
@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 2, 2026

Copy link
Copy Markdown
Contributor

📌 Commit ba1da9b 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 2, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Sep 2, 2026
Rollup of 15 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-log-analyzer

Copy link
Copy Markdown
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/i128-x86-align.rs:65:17: error: CHECK-NEXT: is not on the line after the previous match
 // CHECK-NEXT: ret void
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll:46:2: note: 'next' match was here
 ret void
 ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll:44:34: note: previous match ended here
 store i256 %0, ptr %_0, align 16
                                 ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll:45:1: note: non-matching line after previous match is here
 call void asm sideeffect "", "r,~{memory}"(ptr %_0), !srcloc !5
^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll
Check file: /checkout/tests/codegen-llvm/i128-x86-align.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
         1: ; ModuleID = 'i128_x86_align.c99a19dc19580418-cgu.0' 
         2: source_filename = "i128_x86_align.c99a19dc19580418-cgu.0" 
         3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" 
         4: target triple = "x86_64-unknown-linux-gnu" 
         5:  
         6: ; Function Attrs: nonlazybind uwtable 
         7: define void @load(ptr dead_on_unwind noalias nofree noundef writable sret([32 x i8]) align 16 captures(none) dereferenceable(32) %_0, ptr noalias nofree noundef readonly align 16 captures(address, read_provenance) dereferenceable(32) %x) unnamed_addr #0 { 
         8: start: 
         9:  %0 = load i32, ptr %x, align 16, !noundef !4 
        10:  %1 = getelementptr inbounds i8, ptr %x, i64 16 
        11:  %2 = load i128, ptr %1, align 16, !noundef !4 
        12:  store i32 %0, ptr %_0, align 16 
        13:  %3 = getelementptr inbounds i8, ptr %_0, i64 16 
        14:  store i128 %2, ptr %3, align 16 
        15:  ret void 
        16: } 
        17:  
        18: ; Function Attrs: nonlazybind uwtable 
        19: define void @store(ptr noalias nofree noundef align 16 dereferenceable(32) %x) unnamed_addr #0 { 
        20: start: 
        21:  store i32 1, ptr %x, align 16 
        22:  %0 = getelementptr inbounds i8, ptr %x, i64 16 
        23:  store i128 2, ptr %0, align 16 
        24:  ret void 
        25: } 
        26:  
        27: ; Function Attrs: nonlazybind uwtable 
        28: define void @alloca() unnamed_addr #0 { 
        29: start: 
        30:  %x = alloca [32 x i8], align 16 
        31:  call void @llvm.lifetime.start.p0(i64 32, ptr %x) 
        32:  store i32 1, ptr %x, align 16 
        33:  %0 = getelementptr inbounds i8, ptr %x, i64 16 
        34:  store i128 2, ptr %0, align 16 
        35:  call void @store(ptr noalias nofree noundef align 16 dereferenceable(32) %x) 
        36:  call void @llvm.lifetime.end.p0(i64 32, ptr %x) 
        37:  ret void 
        38: } 
        39:  
        40: ; Function Attrs: nonlazybind uwtable 
        41: define void @load_volatile(ptr dead_on_unwind noalias nofree noundef writable sret([32 x i8]) align 16 captures(address) dereferenceable(32) %_0, ptr noalias nofree noundef readonly align 16 captures(address, read_provenance) dereferenceable(32) %x) unnamed_addr #0 { 
        42: start: 
        43:  %0 = load volatile i256, ptr %x, align 16 
        44:  store i256 %0, ptr %_0, align 16 
        45:  call void asm sideeffect "", "r,~{memory}"(ptr %_0), !srcloc !5 
        46:  ret void 
next:65      !~~~~~~~  error: match on wrong line
        47: } 
        48:  
        49: ; Function Attrs: nonlazybind uwtable 
        50: define void @transmute(ptr dead_on_unwind noalias nofree noundef writable sret([32 x i8]) align 16 captures(none) dereferenceable(32) %_0, i32 noundef %x.0, i128 noundef %x.1) unnamed_addr #0 { 
        51: start: 
        52:  store i32 %x.0, ptr %_0, align 16 
        53:  %0 = getelementptr inbounds i8, ptr %_0, i64 16 
        54:  store i128 %x.1, ptr %0, align 16 
        55:  ret void 
        56: } 
        57:  
        58: ; Function Attrs: nonlazybind uwtable 
        59: define void @store_struct(ptr noalias nofree noundef align 16 dereferenceable(32) %x) unnamed_addr #0 { 
        60: start: 
        61:  %_2 = alloca [32 x i8], align 16 
        62:  call void @llvm.lifetime.start.p0(i64 32, ptr %_2) 
        63:  store i32 1, ptr %_2, align 16 
        64:  %0 = getelementptr inbounds i8, ptr %_2, i64 4 
        65:  store i32 2, ptr %0, align 4 
        66:  %1 = getelementptr inbounds i8, ptr %_2, i64 16 
        67:  store i128 3, ptr %1, align 16 
        68:  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %x, ptr align 16 %_2, i64 32, i1 false) 
        69:  call void @llvm.lifetime.end.p0(i64 32, ptr %_2) 
        70:  ret void 
        71: } 
        72:  
        73: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
        74: declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1 
        75:  
        76: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
        77: declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1 
        78:  
        79: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
        80: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #2 
        81:  
        82: attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
        83: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
        84: attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
        85:  
        86: !llvm.module.flags = !{!0, !1, !2} 
        87: !llvm.ident = !{!3} 
        88:  
        89: !0 = !{i32 8, !"PIC Level", i32 2} 
        90: !1 = !{i32 2, !"RtLibUseGOT", i32 1} 
        91: !2 = !{i32 7, !"uwtable", i32 2} 
        92: !3 = !{!"rustc version 1.100.0-nightly (8f0845e54 2026-09-02)"} 
        93: !4 = !{} 
        94: !5 = !{i64 9693741189296} 
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/usr/lib/llvm-21/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll" "/checkout/tests/codegen-llvm/i128-x86-align.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/i128-x86-align.rs:65:17: error: CHECK-NEXT: is not on the line after the previous match
 // CHECK-NEXT: ret void
                ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll:46:2: note: 'next' match was here
 ret void
 ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll:44:34: note: previous match ended here
 store i256 %0, ptr %_0, align 16
                                 ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll:45:1: note: non-matching line after previous match is here
 call void asm sideeffect "", "r,~{memory}"(ptr %_0), !srcloc !5
^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/i128-x86-align/i128-x86-align.ll
Check file: /checkout/tests/codegen-llvm/i128-x86-align.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
         1: ; ModuleID = 'i128_x86_align.c99a19dc19580418-cgu.0' 
         2: source_filename = "i128_x86_align.c99a19dc19580418-cgu.0" 
         3: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" 
         4: target triple = "x86_64-unknown-linux-gnu" 
         5:  
         6: ; Function Attrs: nonlazybind uwtable 
         7: define void @load(ptr dead_on_unwind noalias nofree noundef writable sret([32 x i8]) align 16 captures(none) dereferenceable(32) %_0, ptr noalias nofree noundef readonly align 16 captures(address, read_provenance) dereferenceable(32) %x) unnamed_addr #0 { 
         8: start: 
         9:  %0 = load i32, ptr %x, align 16, !noundef !4 
        10:  %1 = getelementptr inbounds i8, ptr %x, i64 16 
        11:  %2 = load i128, ptr %1, align 16, !noundef !4 
        12:  store i32 %0, ptr %_0, align 16 
        13:  %3 = getelementptr inbounds i8, ptr %_0, i64 16 
        14:  store i128 %2, ptr %3, align 16 
        15:  ret void 
        16: } 
        17:  
        18: ; Function Attrs: nonlazybind uwtable 
        19: define void @store(ptr noalias nofree noundef align 16 dereferenceable(32) %x) unnamed_addr #0 { 
        20: start: 
        21:  store i32 1, ptr %x, align 16 
        22:  %0 = getelementptr inbounds i8, ptr %x, i64 16 
        23:  store i128 2, ptr %0, align 16 
        24:  ret void 
        25: } 
        26:  
        27: ; Function Attrs: nonlazybind uwtable 
        28: define void @alloca() unnamed_addr #0 { 
        29: start: 
        30:  %x = alloca [32 x i8], align 16 
        31:  call void @llvm.lifetime.start.p0(i64 32, ptr %x) 
        32:  store i32 1, ptr %x, align 16 
        33:  %0 = getelementptr inbounds i8, ptr %x, i64 16 
        34:  store i128 2, ptr %0, align 16 
        35:  call void @store(ptr noalias nofree noundef align 16 dereferenceable(32) %x) 
        36:  call void @llvm.lifetime.end.p0(i64 32, ptr %x) 
        37:  ret void 
        38: } 
        39:  
        40: ; Function Attrs: nonlazybind uwtable 
        41: define void @load_volatile(ptr dead_on_unwind noalias nofree noundef writable sret([32 x i8]) align 16 captures(address) dereferenceable(32) %_0, ptr noalias nofree noundef readonly align 16 captures(address, read_provenance) dereferenceable(32) %x) unnamed_addr #0 { 
        42: start: 
        43:  %0 = load volatile i256, ptr %x, align 16 
        44:  store i256 %0, ptr %_0, align 16 
        45:  call void asm sideeffect "", "r,~{memory}"(ptr %_0), !srcloc !5 
        46:  ret void 
next:65      !~~~~~~~  error: match on wrong line
        47: } 
        48:  
        49: ; Function Attrs: nonlazybind uwtable 
        50: define void @transmute(ptr dead_on_unwind noalias nofree noundef writable sret([32 x i8]) align 16 captures(none) dereferenceable(32) %_0, i32 noundef %x.0, i128 noundef %x.1) unnamed_addr #0 { 
        51: start: 
        52:  store i32 %x.0, ptr %_0, align 16 
        53:  %0 = getelementptr inbounds i8, ptr %_0, i64 16 
        54:  store i128 %x.1, ptr %0, align 16 
        55:  ret void 
        56: } 
        57:  
        58: ; Function Attrs: nonlazybind uwtable 
        59: define void @store_struct(ptr noalias nofree noundef align 16 dereferenceable(32) %x) unnamed_addr #0 { 
        60: start: 
        61:  %_2 = alloca [32 x i8], align 16 
        62:  call void @llvm.lifetime.start.p0(i64 32, ptr %_2) 
        63:  store i32 1, ptr %_2, align 16 
        64:  %0 = getelementptr inbounds i8, ptr %_2, i64 4 
        65:  store i32 2, ptr %0, align 4 
        66:  %1 = getelementptr inbounds i8, ptr %_2, i64 16 
        67:  store i128 3, ptr %1, align 16 
        68:  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %x, ptr align 16 %_2, i64 32, i1 false) 
        69:  call void @llvm.lifetime.end.p0(i64 32, ptr %_2) 
        70:  ret void 
        71: } 
        72:  
        73: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
        74: declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1 
        75:  
        76: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) 
        77: declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1 
        78:  
        79: ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) 
        80: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #2 
        81:  
        82: attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } 
        83: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } 
        84: attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) } 
        85:  
        86: !llvm.module.flags = !{!0, !1, !2} 
        87: !llvm.ident = !{!3} 
        88:  
        89: !0 = !{i32 8, !"PIC Level", i32 2} 
        90: !1 = !{i32 2, !"RtLibUseGOT", i32 1} 
        91: !2 = !{i32 7, !"uwtable", i32 2} 
        92: !3 = !{!"rustc version 1.100.0-nightly (8f0845e54 2026-09-02)"} 
        93: !4 = !{} 
        94: !5 = !{i64 9693741189296} 
>>>>>>
------------------------------------------

---- [codegen] tests/codegen-llvm/i128-x86-align.rs stdout end ----

@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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 2, 2026
@rust-bors

rust-bors Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

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

This rollup was thus unapproved.

@Zalathar Zalathar closed this Sep 2, 2026
@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 2, 2026
@Zalathar
Zalathar deleted the rollup-KHsVEkn branch September 2, 2026 12:14
@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 Sep 2, 2026
@rust-bors

rust-bors Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 8f0845e failed: CI. Failed jobs:

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-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations 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-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.