address review comments

This commit is contained in:
Ariel Ben-Yehuda
2025-12-16 23:55:35 +00:00
parent c55bfc66a6
commit b4bfd7fa43
7 changed files with 24 additions and 25 deletions
+3 -4
View File
@@ -24,8 +24,7 @@
use rustc_middle::ty::data_structures::IndexSet;
use rustc_middle::ty::{TyCtxt, TyCtxtFeed};
use rustc_proc_macro::bridge::client::ProcMacro;
use rustc_session::Session;
use rustc_session::config::enforceable_mitigations::DeniedPartialMitigationLevel;
use rustc_session::config::mitigation_coverage::DeniedPartialMitigationLevel;
use rustc_session::config::{
CrateType, ExtendedTargetModifierInfo, ExternLocation, Externs, OptionsTargetModifiers,
TargetModifier,
@@ -468,7 +467,7 @@ fn report_target_modifiers_extended(
pub fn report_session_incompatibilities(&self, tcx: TyCtxt<'_>, krate: &Crate) {
self.report_incompatible_target_modifiers(tcx, krate);
self.report_incompatible_denied_partial_mitigations(tcx, krate);
self.report_incompatible_partial_mitigations(tcx, krate);
self.report_incompatible_async_drop_feature(tcx, krate);
}
@@ -493,7 +492,7 @@ pub fn report_incompatible_target_modifiers(&self, tcx: TyCtxt<'_>, krate: &Crat
}
}
pub fn report_incompatible_denied_partial_mitigations(&self, tcx: TyCtxt<'_>, krate: &Crate) {
pub fn report_incompatible_partial_mitigations(&self, tcx: TyCtxt<'_>, krate: &Crate) {
let my_mitigations = tcx.sess.gather_enabled_denied_partial_mitigations();
let mut my_mitigations: BTreeMap<_, _> =
my_mitigations.iter().map(|mitigation| (mitigation.kind, mitigation)).collect();
+1 -1
View File
@@ -30,7 +30,7 @@
use rustc_serialize::opaque::MemDecoder;
use rustc_serialize::{Decodable, Decoder};
use rustc_session::config::TargetModifier;
use rustc_session::config::enforceable_mitigations::DeniedPartialMitigation;
use rustc_session::config::mitigation_coverage::DeniedPartialMitigation;
use rustc_session::cstore::{CrateSource, ExternCrate};
use rustc_span::hygiene::HygieneDecodeContext;
use rustc_span::{
+1 -1
View File
@@ -27,7 +27,7 @@
use rustc_middle::ty::fast_reject::{self, TreatParams};
use rustc_middle::{bug, span_bug};
use rustc_serialize::{Decodable, Decoder, Encodable, Encoder, opaque};
use rustc_session::config::enforceable_mitigations::DeniedPartialMitigation;
use rustc_session::config::mitigation_coverage::DeniedPartialMitigation;
use rustc_session::config::{CrateType, OptLevel, TargetModifier};
use rustc_span::hygiene::HygieneEncodeContext;
use rustc_span::{
+1 -1
View File
@@ -36,7 +36,7 @@
use rustc_middle::ty::{self, Ty, TyCtxt};
use rustc_middle::util::Providers;
use rustc_serialize::opaque::FileEncoder;
use rustc_session::config::enforceable_mitigations::DeniedPartialMitigation;
use rustc_session::config::mitigation_coverage::DeniedPartialMitigation;
use rustc_session::config::{SymbolManglingVersion, TargetModifier};
use rustc_session::cstore::{CrateDepKind, ForeignModule, LinkagePreference, NativeLib};
use rustc_span::edition::Edition;
@@ -120,7 +120,7 @@ impl ParameterizedOverTcx for $ty {
rustc_middle::ty::adjustment::CoerceUnsizedInfo,
rustc_middle::ty::fast_reject::SimplifiedType,
rustc_session::config::TargetModifier,
rustc_session::config::enforceable_mitigations::DeniedPartialMitigation,
rustc_session::config::mitigation_coverage::DeniedPartialMitigation,
rustc_session::cstore::ForeignModule,
rustc_session::cstore::LinkagePreference,
rustc_session::cstore::NativeLib,
+11 -11
View File
@@ -20,7 +20,7 @@
TargetTuple, TlsModel,
};
use crate::config::enforceable_mitigations::MitigationEnablement;
use crate::config::mitigation_coverage::MitigationCoverage;
use crate::config::*;
use crate::search_paths::SearchPath;
use crate::utils::NativeLib;
@@ -85,7 +85,7 @@ pub struct TargetModifier {
pub value_name: String,
}
pub mod enforceable_mitigations;
pub mod mitigation_coverage;
mod target_modifier_consistency_check {
use super::*;
@@ -896,16 +896,16 @@ mod desc {
pub(crate) const parse_align: &str = "a number that is a power of 2 between 1 and 2^29";
pub(crate) const parse_assert_incr_state: &str = "one of: `loaded`, `not-loaded`";
pub(crate) const parse_allow_partial_mitigations: &str =
super::enforceable_mitigations::DeniedPartialMitigationKind::KINDS;
super::mitigation_coverage::DeniedPartialMitigationKind::KINDS;
pub(crate) const parse_deny_partial_mitigations: &str =
super::enforceable_mitigations::DeniedPartialMitigationKind::KINDS;
super::mitigation_coverage::DeniedPartialMitigationKind::KINDS;
}
pub mod parse {
use std::str::FromStr;
pub(crate) use super::*;
use crate::config::enforceable_mitigations::MitigationEnablement;
use crate::config::mitigation_coverage::MitigationCoverage;
pub(crate) const MAX_THREADS_CAP: usize = 256;
/// Ignore the value. Used for removed options where we don't actually want to store
@@ -2086,7 +2086,7 @@ pub(crate) fn parse_assert_incr_state(
}
fn parse_partial_mitigations(
slot: &mut Vec<MitigationEnablement>,
slot: &mut Vec<MitigationCoverage>,
v: Option<&str>,
enabled: bool,
) -> bool {
@@ -2094,7 +2094,7 @@ fn parse_partial_mitigations(
Some(s) => {
for sub in s.split(',') {
match sub.parse() {
Ok(kind) => slot.push(MitigationEnablement { kind, enabled }),
Ok(kind) => slot.push(MitigationCoverage { kind, enabled }),
Err(_) => return false,
}
}
@@ -2105,14 +2105,14 @@ fn parse_partial_mitigations(
}
pub(crate) fn parse_allow_partial_mitigations(
slot: &mut Vec<MitigationEnablement>,
slot: &mut Vec<MitigationCoverage>,
v: Option<&str>,
) -> bool {
parse_partial_mitigations(slot, v, true)
}
pub(crate) fn parse_deny_partial_mitigations(
slot: &mut Vec<MitigationEnablement>,
slot: &mut Vec<MitigationCoverage>,
v: Option<&str>,
) -> bool {
parse_partial_mitigations(slot, v, false)
@@ -2281,7 +2281,7 @@ pub(crate) fn parse_deny_partial_mitigations(
// tidy-alphabetical-start
allow_features: Option<Vec<String>> = (None, parse_opt_comma_list, [TRACKED],
"only allow the listed language features to be enabled in code (comma separated)"),
allow_partial_mitigations: Vec<MitigationEnablement> = (Vec::new(), parse_allow_partial_mitigations, [UNTRACKED],
allow_partial_mitigations: Vec<MitigationCoverage> = (Vec::new(), parse_allow_partial_mitigations, [UNTRACKED],
"Allow mitigations not enabled for all dependency crates (comma separated list)"),
always_encode_mir: bool = (false, parse_bool, [TRACKED],
"encode MIR of all functions into the crate metadata (default: no)"),
@@ -2350,7 +2350,7 @@ pub(crate) fn parse_deny_partial_mitigations(
"deduplicate identical diagnostics (default: yes)"),
default_visibility: Option<SymbolVisibility> = (None, parse_opt_symbol_visibility, [TRACKED],
"overrides the `default_visibility` setting of the target"),
deny_partial_mitigations: Vec<MitigationEnablement> = (Vec::new(), parse_deny_partial_mitigations, [UNTRACKED],
deny_partial_mitigations: Vec<MitigationCoverage> = (Vec::new(), parse_deny_partial_mitigations, [UNTRACKED],
"Deny mitigations not enabled for all dependency crates (comma separated list)"),
dep_info_omit_d_target: bool = (false, parse_bool, [TRACKED],
"in dep-info output, omit targets for tracking dependencies of the dep-info files \
@@ -68,7 +68,7 @@ fn from(value: StackProtector) -> Self {
pub struct DeniedPartialMitigationKindParseError;
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Encodable, BlobDecodable)]
pub struct MitigationEnablement {
pub struct MitigationCoverage {
pub kind: DeniedPartialMitigationKind,
pub enabled: bool,
}
@@ -79,7 +79,7 @@ macro_rules! intersperse {
};
}
macro_rules! enforced_mitigations {
macro_rules! denied_partial_mitigations {
([$self:ident] enum $kind:ident {$(($name:ident, $text:expr, $since:ident, $code:expr)),*}) => {
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Encodable, BlobDecodable)]
pub enum DeniedPartialMitigationKind {
@@ -123,7 +123,7 @@ pub fn enforced_since(&self) -> Edition {
}
impl Options {
pub fn all_enforced_mitigations(&self) -> impl Iterator<Item = DeniedPartialMitigationKind> {
pub fn all_denied_partial_mitigations(&self) -> impl Iterator<Item = DeniedPartialMitigationKind> {
[$(DeniedPartialMitigationKind::$name),*].into_iter()
}
}
@@ -145,7 +145,7 @@ pub fn gather_enabled_denied_partial_mitigations(&$self) -> Vec<DeniedPartialMit
}
}
enforced_mitigations! {
denied_partial_mitigations! {
[self]
enum DeniedPartialMitigationKind {
(StackProtector, "stack-protector", EditionFuture, self.stack_protector()),
@@ -153,7 +153,7 @@ enum DeniedPartialMitigationKind {
}
}
/// Enforced mitigations, see [RFC 3855](https://github.com/rust-lang/rfcs/pull/3855)
/// Denied-partial mitigations, see [RFC 3855](https://github.com/rust-lang/rfcs/pull/3855)
#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Encodable, BlobDecodable)]
pub struct DeniedPartialMitigation {
pub kind: DeniedPartialMitigationKind,
@@ -167,7 +167,7 @@ pub fn allowed_partial_mitigations(
edition: Edition,
) -> impl Iterator<Item = DeniedPartialMitigationKind> {
let mut result: BTreeSet<_> = self
.all_enforced_mitigations()
.all_denied_partial_mitigations()
.filter(|mitigation| mitigation.enforced_since() > edition)
.collect();
for mitigation in &self.unstable_opts.allow_partial_mitigations {