[llvm-branch-commits] [clang] b4c63ef - [c++20] Mark class type NTTPs as done and start defining the feature test macro.

Richard Smith via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Dec 18 13:47:43 PST 2020


Author: Richard Smith
Date: 2020-12-18T13:42:23-08:00
New Revision: b4c63ef6dd90dba9af26a111c9a78b121c5284b1

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

LOG: [c++20] Mark class type NTTPs as done and start defining the feature test macro.

Added: 
    

Modified: 
    clang/lib/Frontend/InitPreprocessor.cpp
    clang/test/Lexer/cxx-features.cpp
    clang/www/cxx_status.html

Removed: 
    


################################################################################
diff  --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index f2c8d0f6b59a..d4b77a65aa63 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -565,7 +565,7 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts,
     Builder.defineMacro("__cpp_aggregate_bases", "201603L");
     Builder.defineMacro("__cpp_structured_bindings", "201606L");
     Builder.defineMacro("__cpp_nontype_template_args",
-                        "201411L"); // (not latest)
+                        LangOpts.CPlusPlus20 ? "201911L" : "201411L");
     Builder.defineMacro("__cpp_fold_expressions", "201603L");
     Builder.defineMacro("__cpp_guaranteed_copy_elision", "201606L");
     Builder.defineMacro("__cpp_nontype_template_parameter_auto", "201606L");

diff  --git a/clang/test/Lexer/cxx-features.cpp b/clang/test/Lexer/cxx-features.cpp
index 8b9cb5434730..afc3b56d8a37 100644
--- a/clang/test/Lexer/cxx-features.cpp
+++ b/clang/test/Lexer/cxx-features.cpp
@@ -155,7 +155,7 @@
 #error "wrong value for __cpp_structured_bindings"
 #endif
 
-#if check(nontype_template_args, 0, 0, 0, 201411, 201411)
+#if check(nontype_template_args, 0, 0, 0, 201411, 201911)
 #error "wrong value for __cpp_nontype_template_args"
 #endif
 

diff  --git a/clang/www/cxx_status.html b/clang/www/cxx_status.html
index 4a66b7f9465e..923b13db73a6 100755
--- a/clang/www/cxx_status.html
+++ b/clang/www/cxx_status.html
@@ -1005,7 +1005,7 @@ <h2 id="cxx20">C++20 implementation status</h2>
     <tr>
       <td rowspan="2">Class types as non-type template parameters</td>
       <td><a href="https://wg21.link/p0732r2">P0732R2</a></td>
-      <td rowspan="2" class="none" align="center">No</td>
+      <td rowspan="2" class="svn" align="center">Clang 12</td>
     </tr>
       <tr> <!-- from Belfast -->
         <td><a href="https://wg21.link/p1907r1">P1907R1</a></td>


        


More information about the llvm-branch-commits mailing list