From bd1bb8cd42548d5e50e84f52a5098eec1ee92c98 Mon Sep 17 00:00:00 2001 From: Roy Jacobson Date: Thu, 29 Sep 2022 23:19:45 +0300 Subject: [PATCH] [Clang] define __cpp_named_character_escapes Define the feature test macro for named character escapes. I assume this was not done because it was implemented before formally accepted, right? cxx_status says the paper is implemented. Reviewed By: cor3ntin Differential Revision: https://reviews.llvm.org/D134898 --- clang/lib/Frontend/InitPreprocessor.cpp | 5 +++-- clang/test/Lexer/cxx-features.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 04ebeea..e9bfab9 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -697,10 +697,11 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts, 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 index d1c9f0d..ee52017 100644 --- 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 -- 2.7.4