<commit_before>// RUN: %clang_cc1 -verify -fsyntax-only -Wno-private-extern %s

extern int l0 __attribute__((used)); // expected-warning {{used attribute ignored}}
__private_extern__ int l1 __attribute__((used)); // expected-warning {{used attribute ignored}}

struct __attribute__((used)) s { // expected-warning {{'used' attribute only applies to variables and functions}}
  int x;
};

int a __attribute__((used));

static void __attribute__((used)) f0(void) {
}

void f1() {
  static int a __attribute__((used)); 
  int b __attribute__((used)); // expected-warning {{used attribute ignored}}
}

<commit_msg>Check that we don't warn on this testcase. This is basically a test that Decl::isUsed checks the attribute. If the function had a body just the check is DeclMustBeEmitted would be sufficient.<commit_after>// RUN: %clang_cc1 -verify -fsyntax-only -Wno-private-extern %s

extern int l0 __attribute__((used)); // expected-warning {{used attribute ignored}}
__private_extern__ int l1 __attribute__((used)); // expected-warning {{used attribute ignored}}

struct __attribute__((used)) s { // expected-warning {{'used' attribute only applies to variables and functions}}
  int x;
};

int a __attribute__((used));

static void __attribute__((used)) f0(void) {
}

void f1() {
  static int a __attribute__((used)); 
  int b __attribute__((used)); // expected-warning {{used attribute ignored}}
}

static void __attribute__((used)) f0(void);
{'fraction_non_alphanumeric': 0.1325468424705066, 'fraction_numerical': 0.007633587786259542, 'mean_word_length': 5.0588235294117645, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5964892', 'n_tokens_mistral': 431, 'n_tokens_neox': 419, 'n_words': 149}