Author: Sirraide
Date: 2024-08-05T14:02:15+02:00
New Revision: c65afad9c58474a784633314e945c874ed06584a
URL: 
https://github.com/llvm/llvm-project/commit/c65afad9c58474a784633314e945c874ed06584a
DIFF: 
https://github.com/llvm/llvm-project/commit/c65afad9c58474a784633314e945c874ed06584a.diff

LOG: [Clang] Define __cpp_pack_indexing (#101956)

Following the discussion on #101448 this defines 
`__cpp_pack_indexing`. Since pack indexing is currently
supported in all language modes, the feature test macro 
is also defined in all language modes.

Added: 
    

Modified: 
    clang/docs/LanguageExtensions.rst
    clang/lib/Frontend/InitPreprocessor.cpp
    clang/test/Lexer/cxx-features.cpp

Removed: 
    


################################################################################
diff  --git a/clang/docs/LanguageExtensions.rst 
b/clang/docs/LanguageExtensions.rst
index 9dcb4ac9b75ca..be07f81cc41b0 100644
--- a/clang/docs/LanguageExtensions.rst
+++ b/clang/docs/LanguageExtensions.rst
@@ -1503,6 +1503,7 @@ Conditional ``explicit``                     
__cpp_conditional_explicit       C+
 ``static operator()``                        __cpp_static_call_operator       
C++23         C++03
 Attributes on Lambda-Expressions                                              
C++23         C++11
 Attributes on Structured Bindings            __cpp_structured_bindings        
C++26         C++03
+Pack Indexing                                __cpp_pack_indexing              
C++26         C++03
 ``= delete ("should have a reason");``       __cpp_deleted_function           
C++26         C++03
 -------------------------------------------- -------------------------------- 
------------- -------------
 Designated initializers (N494)                                                
C99           C89

diff  --git a/clang/lib/Frontend/InitPreprocessor.cpp 
b/clang/lib/Frontend/InitPreprocessor.cpp
index 17b9ca7cb9910..8e62461d8a181 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -763,6 +763,7 @@ static void InitializeCPlusPlusFeatureTestMacros(const 
LangOptions &LangOpts,
   Builder.defineMacro("__cpp_placeholder_variables", "202306L");
 
   // C++26 features supported in earlier language modes.
+  Builder.defineMacro("__cpp_pack_indexing", "202311L");
   Builder.defineMacro("__cpp_deleted_function", "202403L");
 
   if (LangOpts.Char8)

diff  --git a/clang/test/Lexer/cxx-features.cpp 
b/clang/test/Lexer/cxx-features.cpp
index 4c2aa3ae2c544..08b732132228b 100644
--- a/clang/test/Lexer/cxx-features.cpp
+++ b/clang/test/Lexer/cxx-features.cpp
@@ -38,6 +38,10 @@
 #error "wrong value for __cpp_deleted_function"
 #endif
 
+#if check(pack_indexing, 202311, 202311, 202311, 202311, 202311, 202311, 
202311)
+#error "wrong value for __cpp_pack_indexing"
+#endif
+
 #if check(placeholder_variables, 202306, 202306, 202306, 202306, 202306, 
202306, 202306)
 #error "wrong value for __cpp_placeholder_variables"
 #endif


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to