about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUrgau <urgau@numericable.fr>2023-12-23 00:37:35 +0100
committerUrgau <urgau@numericable.fr>2023-12-23 00:52:42 +0100
commitcc6cbaad4b0b62796ccc27e50cd80a4a85b70add (patch)
treea1a517dd174390cc862ee2969777cb4e409376b6
parent5151b8c42712c473e7da56e213926b929d0212ef (diff)
downloadrust-cc6cbaad4b0b62796ccc27e50cd80a4a85b70add.tar.gz
rust-cc6cbaad4b0b62796ccc27e50cd80a4a85b70add.zip
Add missing CFI sanitizer cfgs feature gate
-rw-r--r--compiler/rustc_feature/src/builtin_attrs.rs2
-rw-r--r--compiler/rustc_feature/src/unstable.rs2
-rw-r--r--compiler/rustc_span/src/symbol.rs1
-rw-r--r--tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.rs9
-rw-r--r--tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.stderr21
-rw-r--r--tests/ui/sanitize/sanitizer-cfi-generalize-pointers-attr-cfg.rs2
-rw-r--r--tests/ui/sanitize/sanitizer-cfi-normalize-integers-attr-cfg.rs2
7 files changed, 39 insertions, 0 deletions
diff --git a/compiler/rustc_feature/src/builtin_attrs.rs b/compiler/rustc_feature/src/builtin_attrs.rs
index 5523543cd4f..4442b67df6e 100644
--- a/compiler/rustc_feature/src/builtin_attrs.rs
+++ b/compiler/rustc_feature/src/builtin_attrs.rs
@@ -36,6 +36,8 @@ const GATED_CFGS: &[GatedCfg] = &[
     (sym::sanitize, sym::cfg_sanitize, cfg_fn!(cfg_sanitize)),
     (sym::version, sym::cfg_version, cfg_fn!(cfg_version)),
     (sym::relocation_model, sym::cfg_relocation_model, cfg_fn!(cfg_relocation_model)),
+    (sym::sanitizer_cfi_generalize_pointers, sym::cfg_sanitizer_cfi, cfg_fn!(cfg_sanitizer_cfi)),
+    (sym::sanitizer_cfi_normalize_integers, sym::cfg_sanitizer_cfi, cfg_fn!(cfg_sanitizer_cfi)),
 ];
 
 /// Find a gated cfg determined by the `pred`icate which is given the cfg's name.
diff --git a/compiler/rustc_feature/src/unstable.rs b/compiler/rustc_feature/src/unstable.rs
index bbf5e031175..9ef59d4be14 100644
--- a/compiler/rustc_feature/src/unstable.rs
+++ b/compiler/rustc_feature/src/unstable.rs
@@ -369,6 +369,8 @@ declare_features! (
     (unstable, cfg_relocation_model, "1.73.0", Some(114929)),
     /// Allows the use of `#[cfg(sanitize = "option")]`; set when -Zsanitizer is used.
     (unstable, cfg_sanitize, "1.41.0", Some(39699)),
+    /// Allows `cfg(sanitizer_cfi_generalize_pointers)` and `cfg(sanitizer_cfi_normalize_integers)`.
+    (unstable, cfg_sanitizer_cfi, "CURRENT_RUSTC_VERSION", Some(89653)),
     /// Allows `cfg(target_abi = "...")`.
     (unstable, cfg_target_abi, "1.55.0", Some(80970)),
     /// Allows `cfg(target(abi = "..."))`.
diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs
index 0333b5f04c3..8382298b16c 100644
--- a/compiler/rustc_span/src/symbol.rs
+++ b/compiler/rustc_span/src/symbol.rs
@@ -496,6 +496,7 @@ symbols! {
         cfg_panic,
         cfg_relocation_model,
         cfg_sanitize,
+        cfg_sanitizer_cfi,
         cfg_target_abi,
         cfg_target_compact,
         cfg_target_feature,
diff --git a/tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.rs b/tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.rs
new file mode 100644
index 00000000000..76d96de750a
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.rs
@@ -0,0 +1,9 @@
+#[cfg(sanitizer_cfi_generalize_pointers)]
+//~^ `cfg(sanitizer_cfi_generalize_pointers)` is experimental
+fn foo() {}
+
+#[cfg(sanitizer_cfi_normalize_integers)]
+//~^ `cfg(sanitizer_cfi_normalize_integers)` is experimental
+fn bar() {}
+
+fn main() {}
diff --git a/tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.stderr b/tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.stderr
new file mode 100644
index 00000000000..8c2a8411c7b
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-cfg-sanitizer_cfi.stderr
@@ -0,0 +1,21 @@
+error[E0658]: `cfg(sanitizer_cfi_generalize_pointers)` is experimental and subject to change
+  --> $DIR/feature-gate-cfg-sanitizer_cfi.rs:1:7
+   |
+LL | #[cfg(sanitizer_cfi_generalize_pointers)]
+   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #89653 <https://github.com/rust-lang/rust/issues/89653> for more information
+   = help: add `#![feature(cfg_sanitizer_cfi)]` to the crate attributes to enable
+
+error[E0658]: `cfg(sanitizer_cfi_normalize_integers)` is experimental and subject to change
+  --> $DIR/feature-gate-cfg-sanitizer_cfi.rs:5:7
+   |
+LL | #[cfg(sanitizer_cfi_normalize_integers)]
+   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: see issue #89653 <https://github.com/rust-lang/rust/issues/89653> for more information
+   = help: add `#![feature(cfg_sanitizer_cfi)]` to the crate attributes to enable
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/sanitize/sanitizer-cfi-generalize-pointers-attr-cfg.rs b/tests/ui/sanitize/sanitizer-cfi-generalize-pointers-attr-cfg.rs
index 3a0fc143da6..5b8de5c219e 100644
--- a/tests/ui/sanitize/sanitizer-cfi-generalize-pointers-attr-cfg.rs
+++ b/tests/ui/sanitize/sanitizer-cfi-generalize-pointers-attr-cfg.rs
@@ -5,5 +5,7 @@
 // check-pass
 // compile-flags: -Clto -Cno-prepopulate-passes -Ctarget-feature=-crt-static -Zsanitizer=cfi -Zsanitizer-cfi-generalize-pointers
 
+#![feature(cfg_sanitizer_cfi)]
+
 #[cfg(sanitizer_cfi_generalize_pointers)]
 fn main() {}
diff --git a/tests/ui/sanitize/sanitizer-cfi-normalize-integers-attr-cfg.rs b/tests/ui/sanitize/sanitizer-cfi-normalize-integers-attr-cfg.rs
index dafc20162ab..4972ccf3167 100644
--- a/tests/ui/sanitize/sanitizer-cfi-normalize-integers-attr-cfg.rs
+++ b/tests/ui/sanitize/sanitizer-cfi-normalize-integers-attr-cfg.rs
@@ -5,5 +5,7 @@
 // check-pass
 // compile-flags: -Clto -Cno-prepopulate-passes -Ctarget-feature=-crt-static -Zsanitizer=cfi -Zsanitizer-cfi-normalize-integers
 
+#![feature(cfg_sanitizer_cfi)]
+
 #[cfg(sanitizer_cfi_normalize_integers)]
 fn main() {}