From 49d48231126c3e83614f399bea653f45c2d8daf9 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Wed, 9 Feb 2022 18:14:35 +0000 Subject: [PATCH] Stabilize cfg_target_has_atomic Closes #32976 --- compiler/rustc_feature/src/accepted.rs | 2 + compiler/rustc_feature/src/active.rs | 4 +- compiler/rustc_feature/src/builtin_attrs.rs | 6 +- compiler/rustc_span/src/symbol.rs | 1 + library/alloc/src/lib.rs | 2 +- library/core/src/lib.rs | 3 +- library/core/tests/lib.rs | 2 +- library/std/src/lib.rs | 2 +- .../atomic-lock-free/atomic_lock_free.rs | 2 +- ...e-cfg-target-has-atomic-equal-alignment.rs | 14 + ...g-target-has-atomic-equal-alignment.stderr | 57 ++++ .../feature-gate-cfg-target-has-atomic.rs | 118 -------- .../feature-gate-cfg-target-has-atomic.stderr | 273 ------------------ 13 files changed, 84 insertions(+), 402 deletions(-) create mode 100644 src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.rs create mode 100644 src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.stderr delete mode 100644 src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.rs delete mode 100644 src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.stderr diff --git a/compiler/rustc_feature/src/accepted.rs b/compiler/rustc_feature/src/accepted.rs index 32a9d081ed8c5..88edaec916972 100644 --- a/compiler/rustc_feature/src/accepted.rs +++ b/compiler/rustc_feature/src/accepted.rs @@ -72,6 +72,8 @@ declare_features! ( (accepted, cfg_doctest, "1.40.0", Some(62210), None), /// Allows `cfg(target_feature = "...")`. (accepted, cfg_target_feature, "1.27.0", Some(29717), None), + /// Allows `cfg(target_has_atomic = "...")`. + (accepted, cfg_target_has_atomic, "1.60.0", Some(32976), None), /// Allows `cfg(target_vendor = "...")`. (accepted, cfg_target_vendor, "1.33.0", Some(29718), None), /// Allows implementing `Clone` for closures where possible (RFC 2132). diff --git a/compiler/rustc_feature/src/active.rs b/compiler/rustc_feature/src/active.rs index e5232bf3dd019..71b9419bab512 100644 --- a/compiler/rustc_feature/src/active.rs +++ b/compiler/rustc_feature/src/active.rs @@ -309,8 +309,8 @@ declare_features! ( (active, cfg_sanitize, "1.41.0", Some(39699), None), /// Allows `cfg(target_abi = "...")`. (active, cfg_target_abi, "1.55.0", Some(80970), None), - /// Allows `cfg(target_has_atomic = "...")`. - (active, cfg_target_has_atomic, "1.9.0", Some(32976), None), + /// Allows `cfg(target_has_atomic_equal_alignment = "...")`. + (active, cfg_target_has_atomic_equal_alignment, "1.60.0", Some(93822), None), /// Allows `cfg(target_thread_local)`. (active, cfg_target_thread_local, "1.7.0", Some(29594), None), /// Allow conditional compilation depending on rust version diff --git a/compiler/rustc_feature/src/builtin_attrs.rs b/compiler/rustc_feature/src/builtin_attrs.rs index cb2562d09a525..7ebef8e19ad22 100644 --- a/compiler/rustc_feature/src/builtin_attrs.rs +++ b/compiler/rustc_feature/src/builtin_attrs.rs @@ -26,12 +26,10 @@ const GATED_CFGS: &[GatedCfg] = &[ // (name in cfg, feature, function to check if the feature is enabled) (sym::target_abi, sym::cfg_target_abi, cfg_fn!(cfg_target_abi)), (sym::target_thread_local, sym::cfg_target_thread_local, cfg_fn!(cfg_target_thread_local)), - (sym::target_has_atomic, sym::cfg_target_has_atomic, cfg_fn!(cfg_target_has_atomic)), - (sym::target_has_atomic_load_store, sym::cfg_target_has_atomic, cfg_fn!(cfg_target_has_atomic)), ( sym::target_has_atomic_equal_alignment, - sym::cfg_target_has_atomic, - cfg_fn!(cfg_target_has_atomic), + sym::cfg_target_has_atomic_equal_alignment, + cfg_fn!(cfg_target_has_atomic_equal_alignment), ), (sym::sanitize, sym::cfg_sanitize, cfg_fn!(cfg_sanitize)), (sym::version, sym::cfg_version, cfg_fn!(cfg_version)), diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs index 70fad4911f9c7..95f6e19e5910f 100644 --- a/compiler/rustc_span/src/symbol.rs +++ b/compiler/rustc_span/src/symbol.rs @@ -421,6 +421,7 @@ symbols! { cfg_target_abi, cfg_target_feature, cfg_target_has_atomic, + cfg_target_has_atomic_equal_alignment, cfg_target_thread_local, cfg_target_vendor, cfg_version, diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs index a07071cb6fba3..ab9f0b9d7378f 100644 --- a/library/alloc/src/lib.rs +++ b/library/alloc/src/lib.rs @@ -140,7 +140,7 @@ #![feature(associated_type_bounds)] #![feature(box_syntax)] #![feature(cfg_sanitize)] -#![feature(cfg_target_has_atomic)] +#![cfg_attr(bootstrap, feature(cfg_target_has_atomic))] #![feature(const_deref)] #![feature(const_fn_trait_bound)] #![feature(const_mut_refs)] diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index e52d52e954c8f..72d8e1b39030a 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -155,7 +155,8 @@ #![feature(allow_internal_unstable)] #![feature(associated_type_bounds)] #![feature(auto_traits)] -#![feature(cfg_target_has_atomic)] +#![cfg_attr(bootstrap, feature(cfg_target_has_atomic))] +#![cfg_attr(not(bootstrap), feature(cfg_target_has_atomic_equal_alignment))] #![feature(const_fn_floating_point_arithmetic)] #![feature(const_fn_fn_ptr_basics)] #![feature(const_fn_trait_bound)] diff --git a/library/core/tests/lib.rs b/library/core/tests/lib.rs index a993def0a818e..1c512471c95cb 100644 --- a/library/core/tests/lib.rs +++ b/library/core/tests/lib.rs @@ -7,7 +7,7 @@ #![feature(box_syntax)] #![feature(cell_update)] #![feature(cfg_panic)] -#![feature(cfg_target_has_atomic)] +#![cfg_attr(bootstrap, feature(cfg_target_has_atomic))] #![feature(const_assume)] #![feature(const_black_box)] #![feature(const_bool_to_option)] diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index 4f44a3183a6ec..2aae29f21544d 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -242,7 +242,7 @@ #![feature(c_variadic)] #![feature(cfg_accessible)] #![feature(cfg_eval)] -#![feature(cfg_target_has_atomic)] +#![cfg_attr(bootstrap, feature(cfg_target_has_atomic))] #![feature(cfg_target_thread_local)] #![feature(char_error_internals)] #![feature(char_internals)] diff --git a/src/test/run-make-fulldeps/atomic-lock-free/atomic_lock_free.rs b/src/test/run-make-fulldeps/atomic-lock-free/atomic_lock_free.rs index bc7951a04da86..e9b28504a907a 100644 --- a/src/test/run-make-fulldeps/atomic-lock-free/atomic_lock_free.rs +++ b/src/test/run-make-fulldeps/atomic-lock-free/atomic_lock_free.rs @@ -1,4 +1,4 @@ -#![feature(cfg_target_has_atomic, no_core, intrinsics, lang_items)] +#![feature(no_core, intrinsics, lang_items)] #![crate_type="rlib"] #![no_core] diff --git a/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.rs b/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.rs new file mode 100644 index 0000000000000..3d692a0700197 --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.rs @@ -0,0 +1,14 @@ +fn main() { + cfg!(target_has_atomic_equal_alignment = "8"); + //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + cfg!(target_has_atomic_equal_alignment = "16"); + //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + cfg!(target_has_atomic_equal_alignment = "32"); + //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + cfg!(target_has_atomic_equal_alignment = "64"); + //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + cfg!(target_has_atomic_equal_alignment = "128"); + //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + cfg!(target_has_atomic_equal_alignment = "ptr"); + //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change +} diff --git a/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.stderr b/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.stderr new file mode 100644 index 0000000000000..8ad3b034aa51f --- /dev/null +++ b/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic-equal-alignment.stderr @@ -0,0 +1,57 @@ +error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + --> $DIR/feature-gate-cfg-target-has-atomic-equal-alignment.rs:2:10 + | +LL | cfg!(target_has_atomic_equal_alignment = "8"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #93822 for more information + = help: add `#![feature(cfg_target_has_atomic_equal_alignment)]` to the crate attributes to enable + +error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + --> $DIR/feature-gate-cfg-target-has-atomic-equal-alignment.rs:4:10 + | +LL | cfg!(target_has_atomic_equal_alignment = "16"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #93822 for more information + = help: add `#![feature(cfg_target_has_atomic_equal_alignment)]` to the crate attributes to enable + +error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + --> $DIR/feature-gate-cfg-target-has-atomic-equal-alignment.rs:6:10 + | +LL | cfg!(target_has_atomic_equal_alignment = "32"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #93822 for more information + = help: add `#![feature(cfg_target_has_atomic_equal_alignment)]` to the crate attributes to enable + +error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + --> $DIR/feature-gate-cfg-target-has-atomic-equal-alignment.rs:8:10 + | +LL | cfg!(target_has_atomic_equal_alignment = "64"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #93822 for more information + = help: add `#![feature(cfg_target_has_atomic_equal_alignment)]` to the crate attributes to enable + +error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + --> $DIR/feature-gate-cfg-target-has-atomic-equal-alignment.rs:10:10 + | +LL | cfg!(target_has_atomic_equal_alignment = "128"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #93822 for more information + = help: add `#![feature(cfg_target_has_atomic_equal_alignment)]` to the crate attributes to enable + +error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change + --> $DIR/feature-gate-cfg-target-has-atomic-equal-alignment.rs:12:10 + | +LL | cfg!(target_has_atomic_equal_alignment = "ptr"); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: see issue #93822 for more information + = help: add `#![feature(cfg_target_has_atomic_equal_alignment)]` to the crate attributes to enable + +error: aborting due to 6 previous errors + +For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.rs b/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.rs deleted file mode 100644 index 049fdd84d8c22..0000000000000 --- a/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.rs +++ /dev/null @@ -1,118 +0,0 @@ -#![feature(intrinsics, lang_items, no_core, rustc_attrs)] - -#![crate_type="rlib"] -#![no_core] - -extern "rust-intrinsic" { - fn atomic_xadd(dst: *mut T, src: T) -> T; -} - -#[lang = "sized"] -trait Sized {} -#[lang = "copy"] -trait Copy {} - -#[cfg(target_has_atomic = "8")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_u8(x: *mut u8) { - atomic_xadd(x, 1); - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "8")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_i8(x: *mut i8) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "16")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_u16(x: *mut u16) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "16")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_i16(x: *mut i16) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "32")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_u32(x: *mut u32) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "32")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_i32(x: *mut i32) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "64")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_u64(x: *mut u64) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "64")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_i64(x: *mut i64) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "128")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_u128(x: *mut u128) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "128")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_i128(x: *mut i128) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "ptr")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_usize(x: *mut usize) { - atomic_xadd(x, 1); -} -#[cfg(target_has_atomic = "ptr")] -//~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change -pub unsafe fn atomic_isize(x: *mut isize) { - atomic_xadd(x, 1); -} - -fn main() { - cfg!(target_has_atomic = "8"); - //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change - cfg!(target_has_atomic = "16"); - //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change - cfg!(target_has_atomic = "32"); - //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change - cfg!(target_has_atomic = "64"); - //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change - cfg!(target_has_atomic = "128"); - //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change - cfg!(target_has_atomic = "ptr"); - //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change - cfg!(target_has_atomic_load_store = "8"); - //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change - cfg!(target_has_atomic_load_store = "16"); - //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change - cfg!(target_has_atomic_load_store = "32"); - //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change - cfg!(target_has_atomic_load_store = "64"); - //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change - cfg!(target_has_atomic_load_store = "128"); - //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change - cfg!(target_has_atomic_load_store = "ptr"); - //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change - cfg!(target_has_atomic_equal_alignment = "8"); - //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - cfg!(target_has_atomic_equal_alignment = "16"); - //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - cfg!(target_has_atomic_equal_alignment = "32"); - //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - cfg!(target_has_atomic_equal_alignment = "64"); - //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - cfg!(target_has_atomic_equal_alignment = "128"); - //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - cfg!(target_has_atomic_equal_alignment = "ptr"); - //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change -} - -#[macro_export] -#[rustc_builtin_macro] -macro_rules! cfg { () => () } diff --git a/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.stderr b/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.stderr deleted file mode 100644 index 16e1dc6440084..0000000000000 --- a/src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.stderr +++ /dev/null @@ -1,273 +0,0 @@ -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:15:7 - | -LL | #[cfg(target_has_atomic = "8")] - | ^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:21:7 - | -LL | #[cfg(target_has_atomic = "8")] - | ^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:26:7 - | -LL | #[cfg(target_has_atomic = "16")] - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:31:7 - | -LL | #[cfg(target_has_atomic = "16")] - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:36:7 - | -LL | #[cfg(target_has_atomic = "32")] - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:41:7 - | -LL | #[cfg(target_has_atomic = "32")] - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:46:7 - | -LL | #[cfg(target_has_atomic = "64")] - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:51:7 - | -LL | #[cfg(target_has_atomic = "64")] - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:56:7 - | -LL | #[cfg(target_has_atomic = "128")] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:61:7 - | -LL | #[cfg(target_has_atomic = "128")] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:66:7 - | -LL | #[cfg(target_has_atomic = "ptr")] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:71:7 - | -LL | #[cfg(target_has_atomic = "ptr")] - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:78:10 - | -LL | cfg!(target_has_atomic = "8"); - | ^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:80:10 - | -LL | cfg!(target_has_atomic = "16"); - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:82:10 - | -LL | cfg!(target_has_atomic = "32"); - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:84:10 - | -LL | cfg!(target_has_atomic = "64"); - | ^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:86:10 - | -LL | cfg!(target_has_atomic = "128"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:88:10 - | -LL | cfg!(target_has_atomic = "ptr"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_load_store)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:90:10 - | -LL | cfg!(target_has_atomic_load_store = "8"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_load_store)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:92:10 - | -LL | cfg!(target_has_atomic_load_store = "16"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_load_store)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:94:10 - | -LL | cfg!(target_has_atomic_load_store = "32"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_load_store)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:96:10 - | -LL | cfg!(target_has_atomic_load_store = "64"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_load_store)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:98:10 - | -LL | cfg!(target_has_atomic_load_store = "128"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_load_store)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:100:10 - | -LL | cfg!(target_has_atomic_load_store = "ptr"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:102:10 - | -LL | cfg!(target_has_atomic_equal_alignment = "8"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:104:10 - | -LL | cfg!(target_has_atomic_equal_alignment = "16"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:106:10 - | -LL | cfg!(target_has_atomic_equal_alignment = "32"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:108:10 - | -LL | cfg!(target_has_atomic_equal_alignment = "64"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:110:10 - | -LL | cfg!(target_has_atomic_equal_alignment = "128"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error[E0658]: `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change - --> $DIR/feature-gate-cfg-target-has-atomic.rs:112:10 - | -LL | cfg!(target_has_atomic_equal_alignment = "ptr"); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #32976 for more information - = help: add `#![feature(cfg_target_has_atomic)]` to the crate attributes to enable - -error: aborting due to 30 previous errors - -For more information about this error, try `rustc --explain E0658`.