// RUN: %clang_cc1 -fsyntax-only -Wunused -std=c2x -verify %s
struct [[maybe_unused]] S1 {// ok
int a [[maybe_unused]];};enum [[maybe_unused]] E1 {
EnumVal [[maybe_unused]]};[[maybe_unused]]voidunused_func([[maybe_unused]]int parm){typedefint maybe_unused_int [[maybe_unused]];[[maybe_unused]]int I;}voidf1(void){int x;// expected-warning {{unused variable}}
typedefintI;// expected-warning {{unused typedef 'I'}}
// Should not warn about these due to not being used.
[[maybe_unused]]int y;typedefint maybe_unused_int [[maybe_unused]];// Should not warn about these uses.
struct S1 s;
maybe_unused_int test;
y =12;}voidf2(void);[[maybe_unused]]voidf2(void);voidf2(void){}