| // RUN: %clang_cc1 -fsyntax-only -Wunused -fdouble-square-bracket-attributes -verify %s |
| |
| struct [[maybe_unused]] S1 { // ok |
| int a [[maybe_unused]]; |
| }; |
| |
| enum [[maybe_unused]] E1 { |
| EnumVal [[maybe_unused]] |
| }; |
| |
| [[maybe_unused]] void unused_func([[maybe_unused]] int parm) { |
| typedef int maybe_unused_int [[maybe_unused]]; |
| [[maybe_unused]] int I; |
| } |
| |
| void f1(void) { |
| int x; // expected-warning {{unused variable}} |
| typedef int I; // expected-warning {{unused typedef 'I'}} |
| |
| // Should not warn about these due to not being used. |
| [[maybe_unused]] int y; |
| typedef int maybe_unused_int [[maybe_unused]]; |
| |
| // Should not warn about these uses. |
| struct S1 s; |
| maybe_unused_int test; |
| y = 12; |
| } |
| |
| void f2(void); |
| [[maybe_unused]] void f2(void); |
| |
| void f2(void) { |
| } |
| |