diff options
Diffstat (limited to 'clang/test/SemaCXX/cxx17-compat.cpp')
-rw-r--r-- | clang/test/SemaCXX/cxx17-compat.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/cxx17-compat.cpp b/clang/test/SemaCXX/cxx17-compat.cpp index 5fcec2ab9cc..3d5420fa063 100644 --- a/clang/test/SemaCXX/cxx17-compat.cpp +++ b/clang/test/SemaCXX/cxx17-compat.cpp @@ -72,3 +72,19 @@ struct ConstexprVirtual { // expected-warning@-4 {{virtual constexpr functions are incompatible with C++ standards before C++2a}} #endif }; + +struct C { int x, y, z; }; +static auto [cx, cy, cz] = C(); +#if __cplusplus <= 201703L + // expected-warning@-2 {{decomposition declaration declared 'static' is a C++2a extension}} +#else + // expected-warning@-4 {{decomposition declaration declared 'static' is incompatible with C++ standards before C++2a}} +#endif +void f() { + static thread_local auto [cx, cy, cz] = C(); +#if __cplusplus <= 201703L + // expected-warning@-2 {{decomposition declaration declared with 'static thread_local' specifiers is a C++2a extension}} +#else + // expected-warning@-4 {{decomposition declaration declared with 'static thread_local' specifiers is incompatible with C++ standards before C++2a}} +#endif +} |