diff options
| author | Ralf Jung <post@ralfj.de> | 2024-12-26 19:47:41 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2024-12-31 12:41:20 +0100 |
| commit | eb527424a5f0206a464d0968387d85636ac9d305 (patch) | |
| tree | dd45b32bab6ad06c8b0f8d2393809fa07e5c8303 /compiler/rustc_codegen_gcc/src | |
| parent | 0a8cfc2f8f1343fc99f18ca3cad8e2d11f60d7d2 (diff) | |
| download | rust-eb527424a5f0206a464d0968387d85636ac9d305.tar.gz rust-eb527424a5f0206a464d0968387d85636ac9d305.zip | |
x86-64 hardfloat actually requires sse2
Diffstat (limited to 'compiler/rustc_codegen_gcc/src')
| -rw-r--r-- | compiler/rustc_codegen_gcc/src/gcc_util.rs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/compiler/rustc_codegen_gcc/src/gcc_util.rs b/compiler/rustc_codegen_gcc/src/gcc_util.rs index b0fd07827d6..3e579d75d86 100644 --- a/compiler/rustc_codegen_gcc/src/gcc_util.rs +++ b/compiler/rustc_codegen_gcc/src/gcc_util.rs @@ -129,12 +129,18 @@ pub(crate) fn global_gcc_features(sess: &Session, diagnostics: bool) -> Vec<Stri }); } } else { - if abi_enable_set.contains(feature) { - sess.dcx().emit_warn(ForbiddenCTargetFeature { - feature, - enabled: "disabled", - reason: "this feature is required by the target ABI", - }); + // FIXME: we have to request implied features here since + // negative features do not handle implied features above. + #[allow(rustc::potential_query_instability)] // order does not matter + for &required in abi_enable_set.iter() { + let implied = sess.target.implied_target_features(std::iter::once(required)); + if implied.contains(feature) { + sess.dcx().emit_warn(ForbiddenCTargetFeature { + feature, + enabled: "disabled", + reason: "this feature is required by the target ABI", + }); + } } } |
