xref: /llvm-project/clang/test/Sema/attr-used.c (revision e765e0bc8ed06ebb186a9905227273517f0b7240)
1 // RUN: %clang_cc1 -verify -fsyntax-only -Wno-private-extern %s
2 
3 extern int l0 __attribute__((used)); // expected-warning {{'used' attribute ignored on a non-definition declaration}}
4 __private_extern__ int l1 __attribute__((used)); // expected-warning {{'used' attribute ignored on a non-definition declaration}}
5 
6 struct __attribute__((used)) s { // expected-warning {{'used' attribute only applies to variables with non-local storage, functions, and Objective-C methods}}
7   int x;
8 };
9 
10 int a __attribute__((used));
11 
f0(void)12 static void __attribute__((used)) f0(void) {
13 }
14 
f1(void)15 void f1(void) {
16   static int a __attribute__((used));
17   int b __attribute__((used)); // expected-warning {{'used' attribute only applies to variables with non-local storage, functions, and Objective-C methods}}
18 }
19 
20 static void __attribute__((used)) f0(void);
21