Add missing CFI sanitizer cfgs feature gate

This commit is contained in:
Urgau 2023-12-23 00:37:35 +01:00
parent 5151b8c427
commit cc6cbaad4b
7 changed files with 39 additions and 0 deletions

View file

@ -36,6 +36,8 @@ macro_rules! cfg_fn {
(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.

View file

@ -369,6 +369,8 @@ pub fn internal(&self, feature: Symbol) -> bool {
(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 = "..."))`.

View file

@ -496,6 +496,7 @@
cfg_panic,
cfg_relocation_model,
cfg_sanitize,
cfg_sanitizer_cfi,
cfg_target_abi,
cfg_target_compact,
cfg_target_feature,

View file

@ -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() {}

View file

@ -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`.

View file

@ -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() {}

View file

@ -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() {}