diff options
Diffstat (limited to 'test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp')
-rw-r--r-- | test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp b/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp index 551df38a81..5f715a1ec2 100644 --- a/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp +++ b/test/CXX/dcl.dcl/dcl.attr/dcl.attr.unused/p3.cpp @@ -5,9 +5,17 @@ static_assert(__has_cpp_attribute(maybe_unused) == 201603, ""); struct [[maybe_unused]] S {}; +enum E1 { + EnumVal [[maybe_unused]], + UsedEnumVal, +}; + void f() { int x; // expected-warning {{unused variable}} typedef int I; // expected-warning {{unused typedef 'I'}} + E1 e; + switch (e) { // expected-warning {{enumeration value 'UsedEnumVal' not handled in switch}} + } // Should not warn about these due to not being used. [[maybe_unused]] int y; @@ -17,10 +25,16 @@ void f() { S s; maybe_unused_int test; y = 12; + switch (e) { + case UsedEnumVal: + break; + } } #ifdef EXT // expected-warning@6 {{use of the 'maybe_unused' attribute is a C++17 extension}} -// expected-warning@13 {{use of the 'maybe_unused' attribute is a C++17 extension}} -// expected-warning@14 {{use of the 'maybe_unused' attribute is a C++17 extension}} +// expected-warning@9 {{use of the 'maybe_unused' attribute is a C++17 extension}} +// expected-warning@9 {{attributes on an enumerator declaration are a C++17 extension}} +// expected-warning@21 {{use of the 'maybe_unused' attribute is a C++17 extension}} +// expected-warning@22 {{use of the 'maybe_unused' attribute is a C++17 extension}} #endif |