diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 3645dff2e6fe8..29794f27d3005 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -272,6 +272,8 @@ C++23 Feature Support - Extend lifetime of temporaries in mem-default-init for P2718R0. Clang now fully supports `P2718R0 Lifetime extension in range-based for loops `_. + +- ``__cpp_explicit_this_parameter`` is now defined. (#GH82780) C++20 Feature Support ^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index e20feedb840b5..29723b573e771 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -752,6 +752,7 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts, Builder.defineMacro("__cpp_if_consteval", "202106L"); Builder.defineMacro("__cpp_multidimensional_subscript", "202211L"); Builder.defineMacro("__cpp_auto_cast", "202110L"); + Builder.defineMacro("__cpp_explicit_this_parameter", "202110L"); } // We provide those C++23 features as extensions in earlier language modes, so diff --git a/clang/test/Lexer/cxx-features.cpp b/clang/test/Lexer/cxx-features.cpp index 5b88e00b71508..3a60318d3f231 100644 --- a/clang/test/Lexer/cxx-features.cpp +++ b/clang/test/Lexer/cxx-features.cpp @@ -81,7 +81,7 @@ #error "wrong value for __cpp_named_character_escapes" #endif -#if check(explicit_this_parameter, 0, 0, 0, 0, 0, 0, 0) +#if check(explicit_this_parameter, 0, 0, 0, 0, 0, 202110L, 202110L) #error "wrong value for __cpp_explicit_this_parameter" #endif