diff options
| author | León Orell Valerian Liehr <me@fmease.dev> | 2025-01-29 03:12:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-29 03:12:21 +0100 |
| commit | 7e123e49400b85cd5d584d6e1d2c46663bb94846 (patch) | |
| tree | 9f3a350d4a837087d87b6e861189598d11f66183 /compiler/rustc_interface/src/errors.rs | |
| parent | bb31b9c0aa551226f92902af2b35e80d2fc8df38 (diff) | |
| parent | 3f6ffa1462d8f9d4f6f645a330872b172074a2c5 (diff) | |
| download | rust-7e123e49400b85cd5d584d6e1d2c46663bb94846.tar.gz rust-7e123e49400b85cd5d584d6e1d2c46663bb94846.zip | |
Rollup merge of #136147 - RalfJung:required-target-features-check-not-add, r=workingjubilee
ABI-required target features: warn when they are missing in base CPU Part of https://github.com/rust-lang/rust/pull/135408: instead of adding ABI-required features to the target we build for LLVM, check that they are already there. Crucially we check this after applying `-Ctarget-cpu` and `-Ctarget-feature`, by reading `sess.unstable_target_features`. This means we can tweak the ABI target feature check without changing the behavior for any existing user; they will get warnings but the target features behave as before. The test changes here show that we are un-doing the "add all required target features" part. Without the full #135408, there is no way to take a way an ABI-required target feature with `-Ctarget-cpu`, so we cannot yet test that part. Cc ``@workingjubilee``
Diffstat (limited to 'compiler/rustc_interface/src/errors.rs')
| -rw-r--r-- | compiler/rustc_interface/src/errors.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/rustc_interface/src/errors.rs b/compiler/rustc_interface/src/errors.rs index 939980a932f..b62950d6709 100644 --- a/compiler/rustc_interface/src/errors.rs +++ b/compiler/rustc_interface/src/errors.rs @@ -103,3 +103,12 @@ pub struct IgnoringOutDir; #[derive(Diagnostic)] #[diag(interface_multiple_output_types_to_stdout)] pub struct MultipleOutputTypesToStdout; + +#[derive(Diagnostic)] +#[diag(interface_abi_required_feature)] +#[note] +#[note(interface_abi_required_feature_issue)] +pub(crate) struct AbiRequiredTargetFeature<'a> { + pub feature: &'a str, + pub enabled: &'a str, +} |
