diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -697,10 +697,11 @@ Builder.defineMacro("__cpp_multidimensional_subscript", "202110L"); } - // We provide this as an extension in earlier language modes, so we - // also define the macro. + // We provide those C++2b features as extensions in earlier language modes, so + // we also define their feature test macros. if (LangOpts.CPlusPlus11) Builder.defineMacro("__cpp_static_call_operator", "202207L"); + Builder.defineMacro("__cpp_named_character_escapes", "202207L"); if (LangOpts.Char8) Builder.defineMacro("__cpp_char8_t", "201811L"); diff --git a/clang/test/Lexer/cxx-features.cpp b/clang/test/Lexer/cxx-features.cpp --- a/clang/test/Lexer/cxx-features.cpp +++ b/clang/test/Lexer/cxx-features.cpp @@ -51,7 +51,7 @@ #error "wrong value for __cpp_static_call_operator" #endif -#if check(named_character_escapes, 0, 0, 0, 0, 0, 0) +#if check(named_character_escapes, 202207, 202207, 202207, 202207, 202207, 202207) #error "wrong value for __cpp_named_character_escapes" #endif