Skip to content

Commit d13a431

Browse files
committed
Auto merge of rust-lang#142253 - tgross35:rollup-img49op, r=tgross35
Rollup of 5 pull requests Successful merges: - rust-lang#140767 (Stabilize `sha512`, `sm3` and `sm4` for x86) - rust-lang#141001 (Make NonZero<char> possible) - rust-lang#141993 (Use the in-tree `compiler-builtins` for the sysroot) - rust-lang#142208 (Always consider `const _` items as live for dead code analysis) - rust-lang#142238 (stabilize nonnull_provenance) r? `@ghost` `@rustbot` modify labels: rollup
2 parents 00b5262 + fd06f6d commit d13a431

File tree

35 files changed

+153
-71
lines changed

35 files changed

+153
-71
lines changed

Cargo.lock

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3130,11 +3130,12 @@ dependencies = [
31303130

31313131
[[package]]
31323132
name = "rustc-build-sysroot"
3133-
version = "0.5.7"
3133+
version = "0.5.8"
31343134
source = "registry+https://github.com/rust-lang/crates.io-index"
3135-
checksum = "10edc2e4393515193bd766e2f6c050b0536a68e56f2b6d56c07ababfdc114ff0"
3135+
checksum = "16d115ad7e26e0d1337f64ae6598f758194696afc2e9f34c8a6f24582529c3dc"
31363136
dependencies = [
31373137
"anyhow",
3138+
"regex",
31383139
"rustc_version",
31393140
"tempfile",
31403141
"walkdir",

compiler/rustc_codegen_gcc/build_system/build_sysroot/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ resolver = "2"
66

77
[dependencies]
88
core = { path = "./sysroot_src/library/core" }
9-
compiler_builtins = "0.1"
109
alloc = { path = "./sysroot_src/library/alloc" }
1110
std = { path = "./sysroot_src/library/std", features = ["panic_unwind", "backtrace"] }
1211
test = { path = "./sysroot_src/library/test" }
@@ -16,6 +15,7 @@ proc_macro = { path = "./sysroot_src/library/proc_macro" }
1615
rustc-std-workspace-core = { path = "./sysroot_src/library/rustc-std-workspace-core" }
1716
rustc-std-workspace-alloc = { path = "./sysroot_src/library/rustc-std-workspace-alloc" }
1817
rustc-std-workspace-std = { path = "./sysroot_src/library/rustc-std-workspace-std" }
18+
compiler_builtins = { path = "./sysroot_src/library/compiler-builtins/compiler-builtins" }
1919

2020
# For compiler-builtins we always use a high number of codegen units.
2121
# The goal here is to place every single intrinsic into its own object

compiler/rustc_feature/src/accepted.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,8 @@ declare_features! (
382382
(accepted, self_in_typedefs, "1.32.0", Some(49303)),
383383
/// Allows `Self` struct constructor (RFC 2302).
384384
(accepted, self_struct_ctor, "1.32.0", Some(51994)),
385+
/// Allows use of x86 SHA512, SM3 and SM4 target-features and intrinsics
386+
(accepted, sha512_sm_x86, "CURRENT_RUSTC_VERSION", Some(126624)),
385387
/// Shortern the tail expression lifetime
386388
(accepted, shorter_tail_lifetimes, "1.84.0", Some(123739)),
387389
/// Allows using subslice patterns, `[a, .., b]` and `[a, xs @ .., b]`.

compiler/rustc_feature/src/unstable.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -627,8 +627,6 @@ declare_features! (
627627
(unstable, return_type_notation, "1.70.0", Some(109417)),
628628
/// Allows `extern "rust-cold"`.
629629
(unstable, rust_cold_cc, "1.63.0", Some(97544)),
630-
/// Allows use of x86 SHA512, SM3 and SM4 target-features and intrinsics
631-
(unstable, sha512_sm_x86, "1.82.0", Some(126624)),
632630
/// Allows the use of SIMD types in functions declared in `extern` blocks.
633631
(unstable, simd_ffi, "1.0.0", Some(27731)),
634632
/// Allows specialization of implementations (RFC 1210).

compiler/rustc_passes/src/dead.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use rustc_middle::ty::{self, TyCtxt};
2222
use rustc_middle::{bug, span_bug};
2323
use rustc_session::lint::builtin::DEAD_CODE;
2424
use rustc_session::lint::{self, LintExpectationId};
25-
use rustc_span::{Symbol, sym};
25+
use rustc_span::{Symbol, kw, sym};
2626

2727
use crate::errors::{
2828
ChangeFields, IgnoredDerivedImpls, MultipleDeadCodes, ParentInfo, UselessAssignment,
@@ -793,6 +793,17 @@ fn check_item<'tcx>(
793793
// global_asm! is always live.
794794
worklist.push((id.owner_id.def_id, ComesFromAllowExpect::No));
795795
}
796+
DefKind::Const => {
797+
let item = tcx.hir_item(id);
798+
if let hir::ItemKind::Const(ident, ..) = item.kind
799+
&& ident.name == kw::Underscore
800+
{
801+
// `const _` is always live, as that syntax only exists for the side effects
802+
// of type checking and evaluating the constant expression, and marking them
803+
// as dead code would defeat that purpose.
804+
worklist.push((id.owner_id.def_id, ComesFromAllowExpect::No));
805+
}
806+
}
796807
_ => {}
797808
}
798809
}

compiler/rustc_target/src/target_features.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,9 @@ static X86_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
455455
("rdseed", Stable, &[]),
456456
("rtm", Unstable(sym::rtm_target_feature), &[]),
457457
("sha", Stable, &["sse2"]),
458-
("sha512", Unstable(sym::sha512_sm_x86), &["avx2"]),
459-
("sm3", Unstable(sym::sha512_sm_x86), &["avx"]),
460-
("sm4", Unstable(sym::sha512_sm_x86), &["avx2"]),
458+
("sha512", Stable, &["avx2"]),
459+
("sm3", Stable, &["avx"]),
460+
("sm4", Stable, &["avx2"]),
461461
// This cannot actually be toggled, the ABI always fixes it, so it'd make little sense to
462462
// stabilize. It must be in this list for the ABI check to be able to use it.
463463
("soft-float", Stability::Unstable(sym::x87_target_feature), &[]),

library/Cargo.lock

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,9 @@ dependencies = [
6262
[[package]]
6363
name = "compiler_builtins"
6464
version = "0.1.160"
65-
source = "registry+https://github.com/rust-lang/crates.io-index"
66-
checksum = "6376049cfa92c0aa8b9ac95fae22184b981c658208d4ed8a1dc553cd83612895"
6765
dependencies = [
6866
"cc",
69-
"rustc-std-workspace-core",
67+
"core",
7068
]
7169

7270
[[package]]
@@ -304,6 +302,7 @@ dependencies = [
304302
name = "rustc-std-workspace-core"
305303
version = "1.99.0"
306304
dependencies = [
305+
"compiler_builtins",
307306
"core",
308307
]
309308

library/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,4 @@ rustc-demangle.opt-level = "s"
5050
rustc-std-workspace-core = { path = 'rustc-std-workspace-core' }
5151
rustc-std-workspace-alloc = { path = 'rustc-std-workspace-alloc' }
5252
rustc-std-workspace-std = { path = 'rustc-std-workspace-std' }
53+
compiler_builtins = { path = "compiler-builtins/compiler-builtins" }

library/alloc/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ bench = false
1616

1717
[dependencies]
1818
core = { path = "../core", public = true }
19-
compiler_builtins = { version = "=0.1.160", features = ['rustc-dep-of-std'] }
19+
compiler_builtins = { path = "../compiler-builtins/compiler-builtins", features = ["rustc-dep-of-std"] }
2020

2121
[features]
2222
compiler-builtins-mem = ['compiler_builtins/mem']

library/alloc/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@
131131
#![feature(local_waker)]
132132
#![feature(maybe_uninit_slice)]
133133
#![feature(maybe_uninit_uninit_array_transpose)]
134-
#![feature(nonnull_provenance)]
135134
#![feature(panic_internals)]
136135
#![feature(pattern)]
137136
#![feature(pin_coerce_unsized_trait)]

0 commit comments

Comments
 (0)