Skip to content

Commit

Permalink
add tests and fix comments
Browse files Browse the repository at this point in the history
  • Loading branch information
cynecx committed Feb 7, 2022
1 parent 03733ca commit e075586
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 3 deletions.
4 changes: 2 additions & 2 deletions compiler/rustc_feature/src/active.rs
Original file line number Diff line number Diff line change
Expand Up @@ -533,8 +533,8 @@ declare_features! (
///
/// NOTE: A limited form of `union U { ... }` was accepted in 1.19.0.
(active, untagged_unions, "1.13.0", Some(55149), None),
/// Allows using the `#[used(retain)]` attribute.
(active, used_with_arg, "1.60.0", None, None),
/// Allows using the `#[used(linker)]` (or `#[used(compiler)]`) attribute.
(active, used_with_arg, "1.60.0", Some(00000), None),
/// Allows `extern "wasm" fn`
(active, wasm_abi, "1.53.0", Some(83788), None),
// !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!! !!!!
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_feature/src/builtin_attrs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ pub const BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[
ungated!(export_name, Normal, template!(NameValueStr: "name"), FutureWarnPreceding),
ungated!(link_section, Normal, template!(NameValueStr: "name"), FutureWarnPreceding),
ungated!(no_mangle, Normal, template!(Word), WarnFollowing),
ungated!(used, Normal, template!(Word, List: "used"), WarnFollowing),
ungated!(used, Normal, template!(Word, List: "compiler|linker"), WarnFollowing),

// Limits:
ungated!(recursion_limit, CrateLevel, template!(NameValueStr: "N"), FutureWarnFollowing),
Expand Down
12 changes: 12 additions & 0 deletions src/test/codegen/used_with_arg.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// compile-flags: -O

#![crate_type = "lib"]
#![feature(used_with_arg)]

// CHECK: @llvm.used = appending global [1 x i8*]
#[used(linker)]
static mut USED_LINKER: [usize; 1] = [0];

// CHECK-NEXT: @llvm.compiler.used = appending global [1 x i8*]
#[used(compiler)]
static mut USED_COMPILER: [usize; 1] = [0];
7 changes: 7 additions & 0 deletions src/test/ui/feature-gates/feature-gate-used_with_arg.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#[used(linker)] //~ ERROR `#[used(linker)]` is currently unstable
static mut USED_LINKER: [usize; 1] = [0];

#[used(compiler)] //~ ERROR `#[used(compiler)]` is currently unstable
static mut USED_COMPILER: [usize; 1] = [0];

fn main() {}
19 changes: 19 additions & 0 deletions src/test/ui/feature-gates/feature-gate-used_with_arg.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
error[E0658]: `#[used(linker)]` is currently unstable
--> $DIR/feature-gate-used_with_arg.rs:1:1
|
LL | #[used(linker)]
| ^^^^^^^^^^^^^^^
|
= help: add `#![feature(used_with_arg)]` to the crate attributes to enable

error[E0658]: `#[used(compiler)]` is currently unstable
--> $DIR/feature-gate-used_with_arg.rs:4:1
|
LL | #[used(compiler)]
| ^^^^^^^^^^^^^^^^^
|
= help: add `#![feature(used_with_arg)]` to the crate attributes to enable

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0658`.

0 comments on commit e075586

Please sign in to comment.