about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAmanieu d'Antras <amanieu@gmail.com>2022-07-11 14:26:58 +0100
committerAmanieu d'Antras <amanieu@gmail.com>2022-07-11 14:26:58 +0100
commitc98d66cabf7c85431cf891e4987e07d388d18740 (patch)
treea092d3898c863c05cbc5c11f37cbd667285a0817
parenta513b2abae5f749d59117ced941097a64969c913 (diff)
downloadrust-c98d66cabf7c85431cf891e4987e07d388d18740.tar.gz
rust-c98d66cabf7c85431cf891e4987e07d388d18740.zip
Keep unstable target features for asm feature checking
Inline assembly uses the target features to determine which registers
are available on the current target. However it needs to be able to
access unstable target features for this.

Fixes #99071
-rw-r--r--src/lib.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 58996a9db78..91c1fa6026c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -133,8 +133,8 @@ impl CodegenBackend for GccCodegenBackend {
         )
     }
 
-    fn target_features(&self, sess: &Session) -> Vec<Symbol> {
-        target_features(sess)
+    fn target_features(&self, sess: &Session, allow_unstable: bool) -> Vec<Symbol> {
+        target_features(sess, allow_unstable)
     }
 }
 
@@ -291,12 +291,12 @@ pub fn target_cpu(sess: &Session) -> &str {
     }
 }
 
-pub fn target_features(sess: &Session) -> Vec<Symbol> {
+pub fn target_features(sess: &Session, allow_unstable: bool) -> Vec<Symbol> {
     supported_target_features(sess)
         .iter()
         .filter_map(
             |&(feature, gate)| {
-                if sess.is_nightly_build() || gate.is_none() { Some(feature) } else { None }
+                if sess.is_nightly_build() || allow_unstable || gate.is_none() { Some(feature) } else { None }
             },
         )
         .filter(|_feature| {