diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index 4278926b042f3..5c9e88dc57ca6 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -307,7 +307,7 @@ #![feature(doc_cfg)] #![feature(doc_masked)] #![feature(doc_spotlight)] -#![cfg_attr(windows, feature(used))] +#![cfg_attr(all(windows, stage0), feature(used))] #![feature(doc_alias)] #![feature(doc_keyword)] #![feature(panic_info_message)] diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 0270e36db1177..cbadbf8ee1648 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -349,9 +349,6 @@ declare_features! ( // Allows the `try {...}` expression (active, try_blocks, "1.29.0", Some(31436), None), - // Used to preserve symbols (see llvm.used) - (active, used, "1.18.0", Some(40289), None), - // Allows module-level inline assembly by way of global_asm!() (active, global_asm, "1.18.0", Some(35119), None), @@ -674,6 +671,9 @@ declare_features! ( // Allows all literals in attribute lists and values of key-value pairs. (accepted, attr_literals, "1.30.0", Some(34981), None), (accepted, panic_handler, "1.30.0", Some(44489), None), + // Used to preserve symbols (see llvm.used) + (accepted, used, "1.29.0", Some(40289), None), + ); // If you change this, please modify src/doc/unstable-book as well. You must @@ -1064,10 +1064,7 @@ pub const BUILTIN_ATTRIBUTES: &'static [(&'static str, AttributeType, AttributeG "unwind_attributes", "#[unwind] is experimental", cfg_fn!(unwind_attributes))), - ("used", Whitelisted, Gated( - Stability::Unstable, "used", - "the `#[used]` attribute is an experimental feature", - cfg_fn!(used))), + ("used", Whitelisted, Ungated), // used in resolve ("prelude_import", Whitelisted, Gated(Stability::Unstable, diff --git a/src/test/run-make-fulldeps/used/used.rs b/src/test/run-make-fulldeps/used/used.rs index 186cd0fdf5e35..6992dd94af3bd 100644 --- a/src/test/run-make-fulldeps/used/used.rs +++ b/src/test/run-make-fulldeps/used/used.rs @@ -9,7 +9,6 @@ // except according to those terms. #![crate_type = "lib"] -#![feature(used)] #[used] static FOO: u32 = 0; diff --git a/src/test/ui/run-pass/issues/issue-41628.rs b/src/test/ui/run-pass/issues/issue-41628.rs index 75924274f1c4b..f4b9588ff0567 100644 --- a/src/test/ui/run-pass/issues/issue-41628.rs +++ b/src/test/ui/run-pass/issues/issue-41628.rs @@ -10,7 +10,6 @@ // run-pass #![deny(dead_code)] -#![feature(used)] #[used] static FOO: u32 = 0; diff --git a/src/test/ui/used.rs b/src/test/ui/used.rs index f170d9c25f56d..b3ed8601988d1 100644 --- a/src/test/ui/used.rs +++ b/src/test/ui/used.rs @@ -8,8 +8,6 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(used)] - #[used] static FOO: u32 = 0; // OK