about summary refs log tree commit diff
path: root/library/stdarch/crates/std_detect/src
diff options
context:
space:
mode:
authorUrgau <urgau@numericable.fr>2024-11-05 20:31:40 +0100
committerAmanieu d'Antras <amanieu@gmail.com>2024-11-08 06:17:06 +0800
commita6a49cfd9013acdbe55b92cdd9f886bc3c29e4ca (patch)
tree079b8049ae5e7fe9b900f73429bbc834c09bdb4a /library/stdarch/crates/std_detect/src
parentd3fe1b7c217ff8db0531e1b9dff4f1217b560ea4 (diff)
downloadrust-a6a49cfd9013acdbe55b92cdd9f886bc3c29e4ca.tar.gz
rust-a6a49cfd9013acdbe55b92cdd9f886bc3c29e4ca.zip
Add ability to declare a feature without cfg checking
This is necessary to avoid `unexpected_cfgs` warnings for unexpected/
missing target features, in user code.
Diffstat (limited to 'library/stdarch/crates/std_detect/src')
-rw-r--r--library/stdarch/crates/std_detect/src/detect/macros.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/library/stdarch/crates/std_detect/src/detect/macros.rs b/library/stdarch/crates/std_detect/src/detect/macros.rs
index 5321ef2252e..f2cc711812a 100644
--- a/library/stdarch/crates/std_detect/src/detect/macros.rs
+++ b/library/stdarch/crates/std_detect/src/detect/macros.rs
@@ -9,6 +9,9 @@ macro_rules! detect_feature {
         $(cfg!(target_feature = $target_feature_lit) ||)*
             $crate::detect::__is_feature_detected::$feature()
     };
+    ($feature:tt, $feature_lit:tt, without cfg check: true) => {
+        $crate::detect::__is_feature_detected::$feature()
+    };
 }
 
 #[allow(unused)]
@@ -21,6 +24,7 @@ macro_rules! features {
       $(@BIND_FEATURE_NAME: $bind_feature:tt; $feature_impl:tt; $(#[$deprecate_attr:meta];)?)*
       $(@NO_RUNTIME_DETECTION: $nort_feature:tt; )*
       $(@FEATURE: #[$stability_attr:meta] $feature:ident: $feature_lit:tt;
+          $(without cfg check: $feature_cfg_check:literal;)?
           $(implied by target_features: [$($target_feature_lit:tt),*];)?
           $(#[$feature_comment:meta])*)*
     ) => {
@@ -32,7 +36,7 @@ macro_rules! features {
         macro_rules! $macro_name {
             $(
                 ($feature_lit) => {
-                    $crate::detect_feature!($feature, $feature_lit $(: $($target_feature_lit),*)?)
+                    $crate::detect_feature!($feature, $feature_lit $(, without cfg check: $feature_cfg_check)? $(: $($target_feature_lit),*)?)
                 };
             )*
             $(