From d7923d4b3828b1ce4330266172dc6a9515b163a3 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Tue, 10 Mar 2026 22:55:52 +0100 Subject: [PATCH 1/9] simd_add/sub/mul/neg: document overflow behavior --- library/core/src/intrinsics/simd.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/core/src/intrinsics/simd.rs b/library/core/src/intrinsics/simd.rs index 5fb2102c319e2..50d8871973792 100644 --- a/library/core/src/intrinsics/simd.rs +++ b/library/core/src/intrinsics/simd.rs @@ -62,6 +62,7 @@ pub const unsafe fn simd_splat(value: U) -> T; /// Adds two simd vectors elementwise. /// /// `T` must be a vector of integers or floats. +/// For integers, wrapping arithmetic is used. #[rustc_intrinsic] #[rustc_nounwind] pub const unsafe fn simd_add(x: T, y: T) -> T; @@ -69,6 +70,7 @@ pub const unsafe fn simd_add(x: T, y: T) -> T; /// Subtracts `rhs` from `lhs` elementwise. /// /// `T` must be a vector of integers or floats. +/// For integers, wrapping arithmetic is used. #[rustc_intrinsic] #[rustc_nounwind] pub const unsafe fn simd_sub(lhs: T, rhs: T) -> T; @@ -76,6 +78,7 @@ pub const unsafe fn simd_sub(lhs: T, rhs: T) -> T; /// Multiplies two simd vectors elementwise. /// /// `T` must be a vector of integers or floats. +/// For integers, wrapping arithmetic is used. #[rustc_intrinsic] #[rustc_nounwind] pub const unsafe fn simd_mul(x: T, y: T) -> T; @@ -233,8 +236,7 @@ pub const unsafe fn simd_as(x: T) -> U; /// Negates a vector elementwise. /// /// `T` must be a vector of integers or floats. -/// -/// Rust panics for `-::Min` due to overflow, but it is not UB with this intrinsic. +/// For integers, wrapping arithmetic is used. #[rustc_intrinsic] #[rustc_nounwind] pub const unsafe fn simd_neg(x: T) -> T; From 84a2d2a92c1f3c9f79cf632eaf2d6498e031dec5 Mon Sep 17 00:00:00 2001 From: Paul Murphy Date: Tue, 10 Feb 2026 15:27:00 -0600 Subject: [PATCH 2/9] Pass -pg to linker when using -Zinstrument-mcount Clang and gcc use this option to control linking behavior too. Some targets need to be linked against a special crt which enables profiling at runtime. This makes using gprof a little easier with Rust binaries. Otherwise, rustc must be passed `-Clink-args=-pg` to ensure the correct startup code is linked. --- compiler/rustc_codegen_ssa/src/back/link.rs | 4 ++++ compiler/rustc_codegen_ssa/src/back/linker.rs | 7 +++++++ .../instrument-mcount-link-pg/main.rs | 3 +++ .../instrument-mcount-link-pg/rmake.rs | 19 +++++++++++++++++++ 4 files changed, 33 insertions(+) create mode 100644 tests/run-make/instrument-mcount-link-pg/main.rs create mode 100644 tests/run-make/instrument-mcount-link-pg/rmake.rs diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs index 56dca6c8b9021..29ae1548b7439 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs @@ -2767,6 +2767,10 @@ fn add_order_independent_options( cmd.pgo_gen(); } + if sess.opts.unstable_opts.instrument_mcount { + cmd.enable_profiling(); + } + if sess.opts.cg.control_flow_guard != CFGuard::Disabled { cmd.control_flow_guard(); } diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs index 3ace1a8c266cf..55ee9b1b974a0 100644 --- a/compiler/rustc_codegen_ssa/src/back/linker.rs +++ b/compiler/rustc_codegen_ssa/src/back/linker.rs @@ -352,6 +352,7 @@ pub(crate) trait Linker { fn add_no_exec(&mut self) {} fn add_as_needed(&mut self) {} fn reset_per_library_state(&mut self) {} + fn enable_profiling(&mut self) {} } impl dyn Linker + '_ { @@ -732,6 +733,12 @@ impl<'a> Linker for GccLinker<'a> { self.link_or_cc_args(&["-u", "__llvm_profile_runtime"]); } + fn enable_profiling(&mut self) { + // This flag is also used when linking to choose target specific + // libraries needed to enable profiling. + self.cc_arg("-pg"); + } + fn control_flow_guard(&mut self) {} fn ehcont_guard(&mut self) {} diff --git a/tests/run-make/instrument-mcount-link-pg/main.rs b/tests/run-make/instrument-mcount-link-pg/main.rs new file mode 100644 index 0000000000000..47ad8c634112b --- /dev/null +++ b/tests/run-make/instrument-mcount-link-pg/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello World!"); +} diff --git a/tests/run-make/instrument-mcount-link-pg/rmake.rs b/tests/run-make/instrument-mcount-link-pg/rmake.rs new file mode 100644 index 0000000000000..184bd9429bfd8 --- /dev/null +++ b/tests/run-make/instrument-mcount-link-pg/rmake.rs @@ -0,0 +1,19 @@ +// When building a binary instrumented with mcount, verify the +// binary is linked with the correct crt to enable profiling. +// +//@ only-gnu +//@ ignore-cross-compile + +use run_make_support::{path, run, rustc}; + +fn main() { + // Compile instrumentation enabled binary, and verify -pg is passed + let link_args = + rustc().input("main.rs").arg("-Zinstrument-mcount").print("link-args").run().stdout_utf8(); + assert!(link_args.contains("\"-pg\"")); + + // Run it, and verify gmon.out is created + assert!(!path("gmon.out").exists()); + run("main"); + assert!(path("gmon.out").exists()); +} From cc2c5f9b8d19bae79ed8f1671c9ea4feea9f76a2 Mon Sep 17 00:00:00 2001 From: Paul Murphy Date: Thu, 12 Mar 2026 09:14:06 -0500 Subject: [PATCH 3/9] Fix mcount name for *-windows-gnu targets mingw exposes the `_mcount` symbol for profiling. --- compiler/rustc_target/src/spec/base/windows_gnu.rs | 1 + compiler/rustc_target/src/spec/base/windows_gnullvm.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/compiler/rustc_target/src/spec/base/windows_gnu.rs b/compiler/rustc_target/src/spec/base/windows_gnu.rs index d2fe42b903062..cee3f91226998 100644 --- a/compiler/rustc_target/src/spec/base/windows_gnu.rs +++ b/compiler/rustc_target/src/spec/base/windows_gnu.rs @@ -106,6 +106,7 @@ pub(crate) fn opts() -> TargetOptions { // FIXME(davidtwco): Support Split DWARF on Windows GNU - may require LLVM changes to // output DWO, despite using DWARF, doesn't use ELF.. supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]), + mcount: "_mcount".into(), ..Default::default() } } diff --git a/compiler/rustc_target/src/spec/base/windows_gnullvm.rs b/compiler/rustc_target/src/spec/base/windows_gnullvm.rs index 3bd8ebd0ed3d5..8e26852d03711 100644 --- a/compiler/rustc_target/src/spec/base/windows_gnullvm.rs +++ b/compiler/rustc_target/src/spec/base/windows_gnullvm.rs @@ -53,6 +53,7 @@ pub(crate) fn opts() -> TargetOptions { // FIXME(davidtwco): Support Split DWARF on Windows GNU - may require LLVM changes to // output DWO, despite using DWARF, doesn't use ELF.. supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]), + mcount: "_mcount".into(), ..Default::default() } } From 87c25522c6cace676266e64cbbe7774d5eae89fe Mon Sep 17 00:00:00 2001 From: Paul Murphy Date: Thu, 12 Mar 2026 11:54:56 -0500 Subject: [PATCH 4/9] Link extra libraries when using mcount on *-windows-gnu targets libgmon needs to be linked. This also requires readding a few other system libraries to satisfy its dependencies. --- compiler/rustc_codegen_ssa/src/back/linker.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs index 55ee9b1b974a0..89cd1528ced9f 100644 --- a/compiler/rustc_codegen_ssa/src/back/linker.rs +++ b/compiler/rustc_codegen_ssa/src/back/linker.rs @@ -737,6 +737,13 @@ impl<'a> Linker for GccLinker<'a> { // This flag is also used when linking to choose target specific // libraries needed to enable profiling. self.cc_arg("-pg"); + // On windows-gnu targets, libgmon also needs to be linked, and this + // requires readding libraries to satisfy its dependencies. + if self.sess.target.is_like_windows { + self.cc_arg("-lgmon"); + self.cc_arg("-lkernel32"); + self.cc_arg("-lmsvcrt"); + } } fn control_flow_guard(&mut self) {} From fac53a0cf82ed94246b8159a1d40e297e385bef4 Mon Sep 17 00:00:00 2001 From: Takayuki Maeda Date: Wed, 18 Mar 2026 12:41:18 +0900 Subject: [PATCH 5/9] add regression test for issue 153695 --- .../reachable/never-pattern-closure-param-array.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tests/ui/reachable/never-pattern-closure-param-array.rs diff --git a/tests/ui/reachable/never-pattern-closure-param-array.rs b/tests/ui/reachable/never-pattern-closure-param-array.rs new file mode 100644 index 0000000000000..83bbc4b39b772 --- /dev/null +++ b/tests/ui/reachable/never-pattern-closure-param-array.rs @@ -0,0 +1,13 @@ +//@ check-pass +//@ edition: 2024 + +#![feature(never_patterns)] +#![allow(incomplete_features)] +#![allow(unreachable_code)] + +fn main() { + let _ = Some({ + return; + }) + .map(|!| [1]); +} From 74909ec285fb12f2a14234009354ad883b7cdabd Mon Sep 17 00:00:00 2001 From: Takayuki Maeda Date: Wed, 18 Mar 2026 12:41:27 +0900 Subject: [PATCH 6/9] fix ICE for arrays in diverging never-pattern closure bodies --- compiler/rustc_hir_typeck/src/expr.rs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/compiler/rustc_hir_typeck/src/expr.rs b/compiler/rustc_hir_typeck/src/expr.rs index 17c7c4b76b2d6..184c0d5a53d16 100644 --- a/compiler/rustc_hir_typeck/src/expr.rs +++ b/compiler/rustc_hir_typeck/src/expr.rs @@ -1660,14 +1660,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { expr: &'tcx hir::Expr<'tcx>, ) -> Ty<'tcx> { let element_ty = if !args.is_empty() { - // This shouldn't happen unless there's another error - // (e.g., never patterns in inappropriate contexts). - if self.diverges.get() != Diverges::Maybe { - self.dcx() - .struct_span_err(expr.span, "unexpected divergence state in checking array") - .delay_as_bug(); - } - let coerce_to = expected .to_option(self) .and_then(|uty| { From b5605cd6ab936bcf1226725a74437a8e5c2aa9c2 Mon Sep 17 00:00:00 2001 From: cyrgani Date: Thu, 26 Mar 2026 10:43:49 +0000 Subject: [PATCH 7/9] move many tests out of `ui/unsafe` --- tests/ui/{unsafe => union}/access_union_field.rs | 0 tests/ui/{unsafe => union}/access_union_field.stderr | 0 tests/ui/{unsafe => union}/union-assignop.rs | 0 tests/ui/{unsafe => union}/union-assignop.stderr | 0 tests/ui/{unsafe => union}/union-modification.rs | 0 tests/ui/{unsafe => union}/union-pat-in-param.rs | 0 tests/ui/{unsafe => union}/union-pat-in-param.stderr | 0 tests/ui/{unsafe => union}/union.rs | 0 tests/ui/{unsafe => union}/union.stderr | 0 tests/ui/{unsafe => union}/union_access_through_block.rs | 0 tests/ui/{unsafe => union}/union_destructure.rs | 0 tests/ui/{unsafe => union}/union_wild_or_wild.rs | 0 tests/ui/{unsafe => unsafe-binders}/move-out-of-non-copy.rs | 0 tests/ui/{unsafe => unsafe-binders}/move-out-of-non-copy.stderr | 0 .../initializing-ranged-via-ctor.rs | 0 .../initializing-ranged-via-ctor.stderr | 0 .../ranged-ctor-as-fn-ptr.rs | 0 .../ranged-ctor-as-fn-ptr.stderr | 0 .../unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints.rs | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints.stderr | 0 .../unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints2.rs | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints2.stderr | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints2_const.rs | 0 .../ranged_ints2_const.stderr | 0 .../unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints3.rs | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints3.stderr | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints3_const.rs | 0 .../ranged_ints3_const.stderr | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints3_match.rs | 0 .../ranged_ints3_match.stderr | 0 .../unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints4.rs | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints4.stderr | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints4_const.rs | 0 .../ranged_ints4_const.stderr | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints_const.rs | 0 .../ranged_ints_const.stderr | 0 .../{ => rustc_layout_scalar_valid_range}/ranged_ints_macro.rs | 0 37 files changed, 0 insertions(+), 0 deletions(-) rename tests/ui/{unsafe => union}/access_union_field.rs (100%) rename tests/ui/{unsafe => union}/access_union_field.stderr (100%) rename tests/ui/{unsafe => union}/union-assignop.rs (100%) rename tests/ui/{unsafe => union}/union-assignop.stderr (100%) rename tests/ui/{unsafe => union}/union-modification.rs (100%) rename tests/ui/{unsafe => union}/union-pat-in-param.rs (100%) rename tests/ui/{unsafe => union}/union-pat-in-param.stderr (100%) rename tests/ui/{unsafe => union}/union.rs (100%) rename tests/ui/{unsafe => union}/union.stderr (100%) rename tests/ui/{unsafe => union}/union_access_through_block.rs (100%) rename tests/ui/{unsafe => union}/union_destructure.rs (100%) rename tests/ui/{unsafe => union}/union_wild_or_wild.rs (100%) rename tests/ui/{unsafe => unsafe-binders}/move-out-of-non-copy.rs (100%) rename tests/ui/{unsafe => unsafe-binders}/move-out-of-non-copy.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/initializing-ranged-via-ctor.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/initializing-ranged-via-ctor.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged-ctor-as-fn-ptr.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged-ctor-as-fn-ptr.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints2.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints2.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints2_const.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints2_const.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints3.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints3.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints3_const.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints3_const.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints3_match.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints3_match.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints4.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints4.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints4_const.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints4_const.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints_const.rs (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints_const.stderr (100%) rename tests/ui/unsafe/{ => rustc_layout_scalar_valid_range}/ranged_ints_macro.rs (100%) diff --git a/tests/ui/unsafe/access_union_field.rs b/tests/ui/union/access_union_field.rs similarity index 100% rename from tests/ui/unsafe/access_union_field.rs rename to tests/ui/union/access_union_field.rs diff --git a/tests/ui/unsafe/access_union_field.stderr b/tests/ui/union/access_union_field.stderr similarity index 100% rename from tests/ui/unsafe/access_union_field.stderr rename to tests/ui/union/access_union_field.stderr diff --git a/tests/ui/unsafe/union-assignop.rs b/tests/ui/union/union-assignop.rs similarity index 100% rename from tests/ui/unsafe/union-assignop.rs rename to tests/ui/union/union-assignop.rs diff --git a/tests/ui/unsafe/union-assignop.stderr b/tests/ui/union/union-assignop.stderr similarity index 100% rename from tests/ui/unsafe/union-assignop.stderr rename to tests/ui/union/union-assignop.stderr diff --git a/tests/ui/unsafe/union-modification.rs b/tests/ui/union/union-modification.rs similarity index 100% rename from tests/ui/unsafe/union-modification.rs rename to tests/ui/union/union-modification.rs diff --git a/tests/ui/unsafe/union-pat-in-param.rs b/tests/ui/union/union-pat-in-param.rs similarity index 100% rename from tests/ui/unsafe/union-pat-in-param.rs rename to tests/ui/union/union-pat-in-param.rs diff --git a/tests/ui/unsafe/union-pat-in-param.stderr b/tests/ui/union/union-pat-in-param.stderr similarity index 100% rename from tests/ui/unsafe/union-pat-in-param.stderr rename to tests/ui/union/union-pat-in-param.stderr diff --git a/tests/ui/unsafe/union.rs b/tests/ui/union/union.rs similarity index 100% rename from tests/ui/unsafe/union.rs rename to tests/ui/union/union.rs diff --git a/tests/ui/unsafe/union.stderr b/tests/ui/union/union.stderr similarity index 100% rename from tests/ui/unsafe/union.stderr rename to tests/ui/union/union.stderr diff --git a/tests/ui/unsafe/union_access_through_block.rs b/tests/ui/union/union_access_through_block.rs similarity index 100% rename from tests/ui/unsafe/union_access_through_block.rs rename to tests/ui/union/union_access_through_block.rs diff --git a/tests/ui/unsafe/union_destructure.rs b/tests/ui/union/union_destructure.rs similarity index 100% rename from tests/ui/unsafe/union_destructure.rs rename to tests/ui/union/union_destructure.rs diff --git a/tests/ui/unsafe/union_wild_or_wild.rs b/tests/ui/union/union_wild_or_wild.rs similarity index 100% rename from tests/ui/unsafe/union_wild_or_wild.rs rename to tests/ui/union/union_wild_or_wild.rs diff --git a/tests/ui/unsafe/move-out-of-non-copy.rs b/tests/ui/unsafe-binders/move-out-of-non-copy.rs similarity index 100% rename from tests/ui/unsafe/move-out-of-non-copy.rs rename to tests/ui/unsafe-binders/move-out-of-non-copy.rs diff --git a/tests/ui/unsafe/move-out-of-non-copy.stderr b/tests/ui/unsafe-binders/move-out-of-non-copy.stderr similarity index 100% rename from tests/ui/unsafe/move-out-of-non-copy.stderr rename to tests/ui/unsafe-binders/move-out-of-non-copy.stderr diff --git a/tests/ui/unsafe/initializing-ranged-via-ctor.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/initializing-ranged-via-ctor.rs similarity index 100% rename from tests/ui/unsafe/initializing-ranged-via-ctor.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/initializing-ranged-via-ctor.rs diff --git a/tests/ui/unsafe/initializing-ranged-via-ctor.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/initializing-ranged-via-ctor.stderr similarity index 100% rename from tests/ui/unsafe/initializing-ranged-via-ctor.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/initializing-ranged-via-ctor.stderr diff --git a/tests/ui/unsafe/ranged-ctor-as-fn-ptr.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged-ctor-as-fn-ptr.rs similarity index 100% rename from tests/ui/unsafe/ranged-ctor-as-fn-ptr.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged-ctor-as-fn-ptr.rs diff --git a/tests/ui/unsafe/ranged-ctor-as-fn-ptr.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged-ctor-as-fn-ptr.stderr similarity index 100% rename from tests/ui/unsafe/ranged-ctor-as-fn-ptr.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged-ctor-as-fn-ptr.stderr diff --git a/tests/ui/unsafe/ranged_ints.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints.rs diff --git a/tests/ui/unsafe/ranged_ints.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints.stderr diff --git a/tests/ui/unsafe/ranged_ints2.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints2.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2.rs diff --git a/tests/ui/unsafe/ranged_ints2.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints2.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2.stderr diff --git a/tests/ui/unsafe/ranged_ints2_const.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2_const.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints2_const.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2_const.rs diff --git a/tests/ui/unsafe/ranged_ints2_const.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2_const.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints2_const.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints2_const.stderr diff --git a/tests/ui/unsafe/ranged_ints3.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints3.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3.rs diff --git a/tests/ui/unsafe/ranged_ints3.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints3.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3.stderr diff --git a/tests/ui/unsafe/ranged_ints3_const.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_const.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints3_const.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_const.rs diff --git a/tests/ui/unsafe/ranged_ints3_const.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_const.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints3_const.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_const.stderr diff --git a/tests/ui/unsafe/ranged_ints3_match.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_match.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints3_match.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_match.rs diff --git a/tests/ui/unsafe/ranged_ints3_match.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_match.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints3_match.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints3_match.stderr diff --git a/tests/ui/unsafe/ranged_ints4.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints4.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4.rs diff --git a/tests/ui/unsafe/ranged_ints4.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints4.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4.stderr diff --git a/tests/ui/unsafe/ranged_ints4_const.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4_const.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints4_const.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4_const.rs diff --git a/tests/ui/unsafe/ranged_ints4_const.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4_const.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints4_const.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints4_const.stderr diff --git a/tests/ui/unsafe/ranged_ints_const.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_const.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints_const.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_const.rs diff --git a/tests/ui/unsafe/ranged_ints_const.stderr b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_const.stderr similarity index 100% rename from tests/ui/unsafe/ranged_ints_const.stderr rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_const.stderr diff --git a/tests/ui/unsafe/ranged_ints_macro.rs b/tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_macro.rs similarity index 100% rename from tests/ui/unsafe/ranged_ints_macro.rs rename to tests/ui/unsafe/rustc_layout_scalar_valid_range/ranged_ints_macro.rs From 5efde4b7287fed9bf39dddebbb3464efa1d11f97 Mon Sep 17 00:00:00 2001 From: apiraino Date: Thu, 26 Mar 2026 16:32:50 +0000 Subject: [PATCH 8/9] Create GPU target notification group MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create GPU target notification group * Update triagebot.toml Co-authored-by: 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com> --- triagebot.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index 8d6401c490561..07b3bd295dbe1 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -194,6 +194,11 @@ Hi relnotes-interest-group, this issue/PR could use some help in reviewing / adjusting release notes. Could you take a look if available? Thanks <3 """ +[ping.gpu-target] +message = """\ +Hi GPU experts, this issue/PR could use some guidance on how this should be +resolved/implemented. Could you take a look if available? Thanks <3 +""" # ------------------------------------------------------------------------------ # Autolabels From fc5a7077ca43894de1ea0d3f9f56ac627ceef5c7 Mon Sep 17 00:00:00 2001 From: Manuel Drehwald Date: Thu, 26 Mar 2026 20:55:11 +0100 Subject: [PATCH 9/9] bootstrap: force a CI LLVM stamp bump --- src/bootstrap/download-ci-llvm-stamp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bootstrap/download-ci-llvm-stamp b/src/bootstrap/download-ci-llvm-stamp index 2ca19f082693b..fa640ad8d96f1 100644 --- a/src/bootstrap/download-ci-llvm-stamp +++ b/src/bootstrap/download-ci-llvm-stamp @@ -1,4 +1,4 @@ Change this file to make users of the `download-ci-llvm` configuration download a new version of LLVM from CI, even if the LLVM submodule hasn’t changed. -Last change is for: https://github.com/rust-lang/rust/pull/153179 +Last change is for: https://github.com/rust-lang/rust/pull/151063