llvm-project/clang/test/Lexer/cxx2a_keyword_as_cxx17.cpp
Richard Smith 24ad121582 Add -std=c++20 flag, replace C++2a with C++20 throughout the Clang
user interface and documentation, and update __cplusplus for C++20.

WG21 considers the C++20 standard to be finished (even though it still
has some more steps to pass through in the ISO process).

The old flag names are accepted for compatibility, as usual, and we
still have lots of references to C++2a in comments and identifiers;
those can be cleaned up separately.
2020-02-18 16:16:37 -08:00

16 lines
756 B
C++

// RUN: %clang_cc1 %s -verify -fsyntax-only -Wc++20-compat -std=c++17
#define concept constexpr bool
template<typename T>
concept x = 0;
#undef concept
int co_await = 0; // expected-warning {{'co_await' is a keyword in C++20}}
int co_return = 0; // expected-warning {{'co_return' is a keyword in C++20}}
int co_yield = 0; // expected-warning {{'co_yield' is a keyword in C++20}}
int char8_t = 0; // expected-warning {{'char8_t' is a keyword in C++20}}
int concept = 0; // expected-warning {{'concept' is a keyword in C++20}}
int requires = 0; // expected-warning {{'requires' is a keyword in C++20}}
int consteval = 0; // expected-warning {{'consteval' is a keyword in C++20}}
int constinit = 0; // expected-warning {{'constinit' is a keyword in C++20}}