[clang] ba9eaf5 - Update __cplusplus for C++23, add C++23 diag group alias.

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon May 15 07:48:58 PDT 2023


Author: Erich Keane
Date: 2023-05-15T07:48:52-07:00
New Revision: ba9eaf59a8a3bb0713956da3bfb3492669971a62

URL: https://github.com/llvm/llvm-project/commit/ba9eaf59a8a3bb0713956da3bfb3492669971a62
DIFF: https://github.com/llvm/llvm-project/commit/ba9eaf59a8a3bb0713956da3bfb3492669971a62.diff

LOG: Update __cplusplus for C++23, add C++23 diag group alias.

This came up during the C++26 flag discussion, so split this out into a
separate patch.

Added: 
    

Modified: 
    clang/include/clang/Basic/DiagnosticGroups.td
    clang/lib/Frontend/InitPreprocessor.cpp
    clang/test/Preprocessor/init.c

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td
index 2ba42f9b73763..1a792f1cf6e8b 100644
--- a/clang/include/clang/Basic/DiagnosticGroups.td
+++ b/clang/include/clang/Basic/DiagnosticGroups.td
@@ -1116,6 +1116,7 @@ def : DiagGroup<"c++0x-extensions", [CXX11]>;
 def : DiagGroup<"c++1y-extensions", [CXX14]>;
 def : DiagGroup<"c++1z-extensions", [CXX17]>;
 def : DiagGroup<"c++2a-extensions", [CXX20]>;
+def : DiagGroup<"c++2b-extensions", [CXX23]>;
 
 def DelegatingCtorCycles :
   DiagGroup<"delegating-ctor-cycles">;

diff  --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 0c4e73ed931c9..822109c389360 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -451,9 +451,8 @@ static void InitializeStandardPredefinedMacros(const TargetInfo &TI,
       Builder.defineMacro("__STDC_VERSION__", "199409L");
   } else {
     //   -- __cplusplus
-    // FIXME: Use correct value for C++23.
     if (LangOpts.CPlusPlus23)
-      Builder.defineMacro("__cplusplus", "202101L");
+      Builder.defineMacro("__cplusplus", "202302L");
     //      [C++20] The integer literal 202002L.
     else if (LangOpts.CPlusPlus20)
       Builder.defineMacro("__cplusplus", "202002L");

diff  --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index 9d27f12b9861c..661808e34c872 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -16,7 +16,7 @@
 // CXX2B:#define __GXX_EXPERIMENTAL_CXX0X__ 1
 // CXX2B:#define __GXX_RTTI 1
 // CXX2B:#define __GXX_WEAK__ 1
-// CXX2B:#define __cplusplus 202101L
+// CXX2B:#define __cplusplus 202302L
 // CXX2B:#define __private_extern__ extern
 //
 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=c++20 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix CXX2A %s
@@ -139,7 +139,7 @@
 //
 // GXX2B:#define __GNUG__ 4
 // GXX2B:#define __GXX_WEAK__ 1
-// GXX2B:#define __cplusplus 202101L
+// GXX2B:#define __cplusplus 202302L
 // GXX2B:#define __private_extern__ extern
 //
 // RUN: %clang_cc1 -x c++ -fgnuc-version=4.2.1 -std=gnu++20 -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix GXX2A %s


        


More information about the cfe-commits mailing list