// `extern "x86-interrupt" fn()`
(active, abi_x86_interrupt, "1.17.0", Some(40180)),
+
// Allows the `catch {...}` expression
(active, catch_expr, "1.17.0", Some(31436)),
// See rust-lang/rfcs#1414. Allows code like `let x: &'static u32 = &42` to work.
(active, rvalue_static_promotion, "1.15.1", Some(38865)),
+
+ // Used to preserve symbols (see llvm.used)
+ (active, used, "1.18.0", Some(40289)),
+
+ // Hack to document `-Z linker-flavor` in The Unstable Book
+ (active, linker_flavor, "1.18.0", Some(41142)),
+
+ // Allows module-level inline assembly by way of global_asm!()
+ (active, global_asm, "1.18.0", Some(35119)),
);
declare_features! (
// Allows the definition recursive static items.
(accepted, static_recursion, "1.17.0", Some(29719)),
// pub(restricted) visibilities (RFC 1422)
- (accepted, pub_restricted, "1.17.0", Some(32409)),
+ (accepted, pub_restricted, "1.18.0", Some(32409)),
// The #![windows_subsystem] attribute
(accepted, windows_subsystem, "1.18.0", Some(37499)),
);
"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 in resolve
("prelude_import", Whitelisted, Gated(Stability::Unstable,
pub const EXPLAIN_ASM: &'static str =
"inline assembly is not stable enough for use and is subject to change";
+pub const EXPLAIN_GLOBAL_ASM: &'static str =
+ "`global_asm!` is not stable enough for use and is subject to change";
+
pub const EXPLAIN_LOG_SYNTAX: &'static str =
"`log_syntax!` is not stable enough for use and is subject to change";