check_used should only look at actual used attributes

This commit is contained in:
cynecx 2022-02-25 22:52:17 +01:00
parent d981633ed6
commit 45a441b61c
2 changed files with 11 additions and 2 deletions

View File

@ -1740,8 +1740,8 @@ impl CheckAttrVisitor<'_> {
fn check_used(&self, attrs: &[Attribute], target: Target) {
let mut used_linker_span = None;
let mut used_compiler_span = None;
for attr in attrs {
if attr.has_name(sym::used) && target != Target::Static {
for attr in attrs.iter().filter(|attr| attr.has_name(sym::used)) {
if target != Target::Static {
self.tcx
.sess
.span_err(attr.span, "attribute must be applied to a `static` variable");

View File

@ -0,0 +1,9 @@
// check-pass
#![feature(used_with_arg)]
#[used(linker)]
#[no_mangle] // accidentally detected as `used(compiler)`
pub static GLOB: usize = 0;
fn main() {}