https://github.com/Endilll created 
https://github.com/llvm/llvm-project/pull/90352

Currently we're using official publication of CWG issue list available at 
https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_index.html. Unfortunately, 
it's not updated as frequently as we sometimes need. For instance, recently 
there was a confusion during review of CWG2149 test 
(https://github.com/llvm/llvm-project/pull/90079#discussion_r1580174003). This 
patch changes our `make_cxx_dr_status` script to use issue list from CWG GitHub 
repository. I confirmed with CWG chair that this is the most up-to-date source 
of information on CWG issues.

Changing the source of issue list uncovered previously unhandled "tentatively 
ready" status of an issue. This status is considered unresolved by the script 
(like `open`, `drafting`, and `review`), as the resolution might change during 
face-to-face CWG meeting.

I also noticed that CWG decided to handle 2561 differently from what we're 
doing, so this DR is now considered not available in Clang, despite being 
declared as available since 18. CC @cor3ntin.

This patch also brings new issues into our DR list, so if someone was waiting 
for a newly-filed issue to appear on our status page, it should appear with 
this PR.

>From bae40b1e7a894481227978df011e552a78484036 Mon Sep 17 00:00:00 2001
From: Vlad Serebrennikov <serebrennikov.vladis...@gmail.com>
Date: Sat, 27 Apr 2024 21:16:07 +0300
Subject: [PATCH] [clang] Use `cwg_index.html` from GitHub for DR status page

---
 clang/test/CXX/drs/cwg2149.cpp |   2 +-
 clang/test/CXX/drs/dr20xx.cpp  |   2 +-
 clang/test/CXX/drs/dr21xx.cpp  |   2 +
 clang/test/CXX/drs/dr24xx.cpp  |   4 +-
 clang/test/CXX/drs/dr25xx.cpp  |   4 +-
 clang/test/CXX/drs/dr28xx.cpp  |   2 +-
 clang/www/cxx_dr_status.html   | 553 +++++++++++++++++++++++----------
 clang/www/make_cxx_dr_status   |   6 +-
 8 files changed, 410 insertions(+), 165 deletions(-)

diff --git a/clang/test/CXX/drs/cwg2149.cpp b/clang/test/CXX/drs/cwg2149.cpp
index d0f8cb2dfc0a93..8416e42cbd6970 100644
--- a/clang/test/CXX/drs/cwg2149.cpp
+++ b/clang/test/CXX/drs/cwg2149.cpp
@@ -11,7 +11,7 @@
 // cxx98-error@-1 {{variadic macros are a C99 feature}}
 #endif
 
-namespace cwg2149 { // cwg2149: 3.1 drafting 2024-04
+namespace cwg2149 { // cwg2149: 3.1
 #if __cplusplus <= 201103L
 struct X { int i, j, k; };
 #else
diff --git a/clang/test/CXX/drs/dr20xx.cpp b/clang/test/CXX/drs/dr20xx.cpp
index 291a77e0cc71dd..9797097acce753 100644
--- a/clang/test/CXX/drs/dr20xx.cpp
+++ b/clang/test/CXX/drs/dr20xx.cpp
@@ -90,7 +90,7 @@ namespace cwg2026 { // cwg2026: 11
   }
 }
 
-namespace cwg2049 { // cwg2049: 18 drafting P2308R1
+namespace cwg2049 { // cwg2049: 18
 #if __cplusplus >= 202302L
 template <int* x = {}> struct X {};
 X<> a;
diff --git a/clang/test/CXX/drs/dr21xx.cpp b/clang/test/CXX/drs/dr21xx.cpp
index 4fab10c279aa43..082deb42e4fa09 100644
--- a/clang/test/CXX/drs/dr21xx.cpp
+++ b/clang/test/CXX/drs/dr21xx.cpp
@@ -175,6 +175,8 @@ void foo() {
 }
 }
 
+// cwg2149 is in cwg2149.cpp
+
 namespace cwg2157 { // cwg2157: 11
 #if __cplusplus >= 201103L
   enum E : int;
diff --git a/clang/test/CXX/drs/dr24xx.cpp b/clang/test/CXX/drs/dr24xx.cpp
index 5ffaebda68c132..9f876cd8708347 100644
--- a/clang/test/CXX/drs/dr24xx.cpp
+++ b/clang/test/CXX/drs/dr24xx.cpp
@@ -45,7 +45,7 @@ void fallthrough(int n) {
 #endif
 }
 
-namespace cwg2450 { // cwg2450: 18 review P2308R1
+namespace cwg2450 { // cwg2450: 18
 #if __cplusplus >= 202302L
 struct S {int a;};
 template <S s>
@@ -59,7 +59,7 @@ f<{.a= 0}>();
 #endif
 }
 
-namespace cwg2459 { // cwg2459: 18 drafting P2308R1
+namespace cwg2459 { // cwg2459: 18
 #if __cplusplus >= 202302L
 struct A {
   constexpr A(float) {}
diff --git a/clang/test/CXX/drs/dr25xx.cpp b/clang/test/CXX/drs/dr25xx.cpp
index 62b2a0a088cc13..481ae09cdb77ea 100644
--- a/clang/test/CXX/drs/dr25xx.cpp
+++ b/clang/test/CXX/drs/dr25xx.cpp
@@ -130,12 +130,14 @@ struct D3 : B {
 #endif
 
 #if __cplusplus >= 202302L
-namespace cwg2561 { // cwg2561: 18 review 2023-11-09
+namespace cwg2561 { // cwg2561: no
 struct C {
     constexpr C(auto) { }
 };
 void foo() {
     constexpr auto b = [](this C) { return 1; };
+    // FIXME: closure type shouldn't have a conversion function to function
+    //        pointer, because explicit object parameter is present. 
     constexpr int (*fp)(C) = b;
     static_assert(fp(1) == 1);
     static_assert((&decltype(b)::operator())(1) == 1);
diff --git a/clang/test/CXX/drs/dr28xx.cpp b/clang/test/CXX/drs/dr28xx.cpp
index 4d9b0c76758d53..1967e8b751db2d 100644
--- a/clang/test/CXX/drs/dr28xx.cpp
+++ b/clang/test/CXX/drs/dr28xx.cpp
@@ -10,7 +10,7 @@
 // expected-no-diagnostics
 #endif
 
-namespace cwg2847 { // cwg2847: 19
+namespace cwg2847 { // cwg2847: 19 review 2024-03-01
 
 #if __cplusplus >= 202002L
 
diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html
index ea8872c91be604..19d29cb55d6ed0 100755
--- a/clang/www/cxx_dr_status.html
+++ b/clang/www/cxx_dr_status.html
@@ -1433,11 +1433,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Is indirection through a null pointer undefined behavior?</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="233">
+  <tr id="233">
     <td><a href="https://cplusplus.github.io/CWG/issues/233.html";>233</a></td>
-    <td>drafting</td>
+    <td>tentatively ready</td>
     <td>References vs pointers in UDC overload resolution</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="234">
     <td><a href="https://cplusplus.github.io/CWG/issues/234.html";>234</a></td>
@@ -2756,7 +2756,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="453">
     <td><a href="https://cplusplus.github.io/CWG/issues/453.html";>453</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>References may only bind to &#8220;valid&#8221; objects</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -5812,7 +5812,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr class="open" id="1001">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1001.html";>1001</a></td>
-    <td>drafting</td>
+    <td>review</td>
     <td>Parameter type adjustment in dependent parameter types</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -6034,7 +6034,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="1038">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1038.html";>1038</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Overload resolution of <TT>&amp;x.static_func</TT></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -9994,7 +9994,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="1698">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1698.html";>1698</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Files ending in <TT>\</TT></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -10132,7 +10132,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr class="open" id="1721">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1721.html";>1721</a></td>
-    <td>drafting</td>
+    <td>review</td>
     <td>Diagnosing ODR violations for static data members</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -11312,11 +11312,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>decltype-qualified enumeration names</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="1918">
+  <tr id="1918">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1918.html";>1918</a></td>
-    <td>open</td>
+    <td>CD5</td>
     <td><TT>friend</TT> templates with dependent scopes</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="1919">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1919.html";>1919</a></td>
@@ -11474,11 +11474,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>New C incompatibilities</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="1945">
+  <tr id="1945">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1945.html";>1945</a></td>
-    <td>open</td>
+    <td>CD5</td>
     <td>Friend declarations naming members of class templates in 
non-templates</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="1946">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1946.html";>1946</a></td>
@@ -11530,7 +11530,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="1954">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/1954.html";>1954</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td><TT>typeid</TT> null dereference check in subexpressions</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -12098,11 +12098,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>C-style casts that cast away constness vs <TT>static_cast</TT></td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2049">
+  <tr id="2049">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2049.html";>2049</a></td>
-    <td>drafting</td>
+    <td>DRWP</td>
     <td>List initializer in non-type template default argument</td>
-    <td title="Clang 18 implements P2308R1 resolution" align="center">Not 
Resolved*</td>
+    <td class="full" align="center">Clang 18</td>
   </tr>
   <tr id="2050">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2050.html";>2050</a></td>
@@ -12130,7 +12130,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2054">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2054.html";>2054</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Missing description of class SFINAE</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -12418,7 +12418,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2102">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2102.html";>2102</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Constructor checking in <I>new-expression</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -12698,11 +12698,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Thread storage duration and order of initialization</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2149">
+  <tr id="2149">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2149.html";>2149</a></td>
-    <td>drafting</td>
+    <td>DR</td>
     <td>Brace elision and array length deduction</td>
-    <td title="Clang 3.1 implements 2024-04 resolution" align="center">Not 
Resolved*</td>
+    <td class="full" align="center">Clang 3.1</td>
   </tr>
   <tr id="2150">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2150.html";>2150</a></td>
@@ -13318,7 +13318,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2252">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2252.html";>2252</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Enumeration list-initialization from the same type</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -14410,7 +14410,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr class="open" id="2434">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2434.html";>2434</a></td>
-    <td>open</td>
+    <td>review</td>
     <td>Mandatory copy elision vs non-class objects</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -14504,11 +14504,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Thunks as an implementation technique for pointers to virtual 
functions</td>
     <td align="center">Extension</td>
   </tr>
-  <tr class="open" id="2450">
+  <tr id="2450">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2450.html";>2450</a></td>
-    <td>review</td>
+    <td>DRWP</td>
     <td><I>braced-init-list</I> as a <I>template-argument</I></td>
-    <td title="Clang 18 implements P2308R1 resolution" align="center">Not 
Resolved*</td>
+    <td class="full" align="center">Clang 18</td>
   </tr>
   <tr id="2451">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2451.html";>2451</a></td>
@@ -14558,11 +14558,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Value category of expressions denoting non-static member functions</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2459">
+  <tr id="2459">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2459.html";>2459</a></td>
-    <td>drafting</td>
+    <td>DRWP</td>
     <td>Template parameter initialization</td>
-    <td title="Clang 18 implements P2308R1 resolution" align="center">Not 
Resolved*</td>
+    <td class="full" align="center">Clang 18</td>
   </tr>
   <tr id="2460">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2460.html";>2460</a></td>
@@ -14662,7 +14662,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2476">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2476.html";>2476</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td><I>placeholder-type-specifier</I>s and function declarators</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -14830,7 +14830,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2504">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2504.html";>2504</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Inheriting constructors from virtual base classes</td>
     <td class="none" align="center">No</td>
   </tr>
@@ -14992,7 +14992,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2531">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2531.html";>2531</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Static data members redeclared as constexpr</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15002,11 +15002,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Kind of pointer value returned by <TT>new T[0]</TT></td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2533">
+  <tr id="2533">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2533.html";>2533</a></td>
-    <td>review</td>
+    <td>DR</td>
     <td>Storage duration of implicitly created objects</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2534">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2534.html";>2534</a></td>
@@ -15082,13 +15082,13 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2546">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2546.html";>2546</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Defaulted secondary comparison operators defined as deleted</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2547">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2547.html";>2547</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Defaulted comparison operator function for non-classes</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15142,7 +15142,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2556">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2556.html";>2556</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Unusable <TT>promise::return_void</TT></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15166,15 +15166,15 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2560">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2560.html";>2560</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Parameter type determination in a 
<I>requirement-parameter-list</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2561">
+  <tr id="2561">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2561.html";>2561</a></td>
-    <td>review</td>
+    <td>tentatively ready</td>
     <td>Conversion to function pointer for lambda with explicit object 
parameter</td>
-    <td title="Clang 18 implements 2023-11-09 resolution" align="center">Not 
Resolved*</td>
+    <td class="none" align="center">No</td>
   </tr>
   <tr class="open" id="2562">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2562.html";>2562</a></td>
@@ -15214,7 +15214,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2568">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2568.html";>2568</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Access checking during synthesis of defaulted comparison operator</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15226,7 +15226,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2570">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2570.html";>2570</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Clarify constexpr for defaulted functions</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15332,11 +15332,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Visible side effects and initial value of an object</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2588">
+  <tr id="2588">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2588.html";>2588</a></td>
-    <td>drafting</td>
+    <td>tentatively ready</td>
     <td>friend declarations and module linkage</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2589">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2589.html";>2589</a></td>
@@ -15352,7 +15352,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2591">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2591.html";>2591</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Implicit change of active union member for anonymous union in 
union</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15376,7 +15376,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2595">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2595.html";>2595</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>"More constrained" for eligible special member functions</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15406,7 +15406,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2600">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2600.html";>2600</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Type dependency of placeholder types</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15574,7 +15574,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2628">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2628.html";>2628</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Implicit deduction guides should propagate constraints</td>
     <td class="none" align="center">No</td>
   </tr>
@@ -15610,7 +15610,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2634">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2634.html";>2634</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Avoid circularity in specification of scope for friend class 
declarations</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15628,13 +15628,13 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2637">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2637.html";>2637</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Injected-class-name as a <I>simple-template-id</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2638">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2638.html";>2638</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Improve the example for initializing by initializer list</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15748,7 +15748,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2657">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2657.html";>2657</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Cv-qualification adjustment when binding reference to temporary</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15770,11 +15770,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Confusing term "this parameter"</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2661">
+  <tr id="2661">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2661.html";>2661</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Missing disambiguation rule for <I>pure-specifier</I> vs. 
<I>brace-or-equal-initializer</I></td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2662">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2662.html";>2662</a></td>
@@ -15814,7 +15814,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2668">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2668.html";>2668</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td><TT>co_await</TT> in a <I>lambda-expression</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -15838,7 +15838,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2672">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2672.html";>2672</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Lambda body SFINAE is still required, contrary to intent and note</td>
     <td class="full" align="center">Clang 18</td>
   </tr>
@@ -15940,7 +15940,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2689">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2689.html";>2689</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Are cv-qualified <TT>std::nullptr_t</TT> fundamental types?</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16004,11 +16004,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Inconsistency of <I>throw-expression</I> specification</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2700">
+  <tr id="2700">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2700.html";>2700</a></td>
-    <td>review</td>
+    <td>DR</td>
     <td><TT>#error</TT> disallows existing implementation practice</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2701">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2701.html";>2701</a></td>
@@ -16048,7 +16048,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2707">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2707.html";>2707</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Deduction guides cannot have a trailing <I>requires-clause</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16088,11 +16088,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Initialization of reference-to-aggregate from designated initializer 
list</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2714">
+  <tr id="2714">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2714.html";>2714</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Implicit deduction guides omit properties from the 
parameter-declaration-clause of a constructor</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2715">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2715.html";>2715</a></td>
@@ -16156,7 +16156,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2725">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2725.html";>2725</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Overload resolution for non-call of class member access</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16172,11 +16172,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Importing header units synthesized from source files</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2728">
+  <tr id="2728">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2728.html";>2728</a></td>
-    <td>open</td>
+    <td>tentatively ready</td>
     <td>Evaluation of conversions in a <I>delete-expression</I></td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2729">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2729.html";>2729</a></td>
@@ -16204,7 +16204,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2733">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2733.html";>2733</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Applying <TT>[[maybe_unused]]</TT> to a label</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16228,7 +16228,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr class="open" id="2737">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2737.html";>2737</a></td>
-    <td>open</td>
+    <td>review</td>
     <td>Temporary lifetime extension for reference init-captures</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16258,7 +16258,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr class="open" id="2742">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2742.html";>2742</a></td>
-    <td>open</td>
+    <td>drafting</td>
     <td>Guaranteed copy elision for brace-initialization from prvalue</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16274,33 +16274,33 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Multiple objects of the same type at the same address</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2745">
+  <tr id="2745">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2745.html";>2745</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Dependent odr-use in generic lambdas</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2746">
+  <tr id="2746">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2746.html";>2746</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Checking of default template arguments</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2747">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2747.html";>2747</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Cannot depend on an already-deleted splice</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2748">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2748.html";>2748</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Accessing static data members via null pointer</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2749">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2749.html";>2749</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Treatment of "pointer to void" for relational comparisons</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16324,19 +16324,19 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2753">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2753.html";>2753</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Storage reuse for string literal objects and backing arrays</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2754">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2754.html";>2754</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Using *this in explicit object member functions that are 
coroutines</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2755">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2755.html";>2755</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Incorrect wording applied by P2738R1</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16354,43 +16354,43 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2758">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2758.html";>2758</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>What is "access and ambiguity control"?</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2759">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2759.html";>2759</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>[[no_unique_address] and common initial sequence</td>
     <td class="unreleased" align="center">Clang 19</td>
   </tr>
   <tr id="2760">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2760.html";>2760</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Defaulted constructor that is an immediate function</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2761">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2761.html";>2761</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Implicitly invoking the deleted destructor of an anonymous union 
member</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2762">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2762.html";>2762</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Type of implicit object parameter</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2763">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2763.html";>2763</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Ignorability of [[noreturn]] during constant evaluation</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2764">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2764.html";>2764</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Use of placeholders affecting name mangling</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16403,7 +16403,8 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   <tr class="open" id="2766">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2766.html";>2766</a></td>
     <td>open</td>
-    <td>Repeated evaluation of a <I>string-literal</I> may yield different 
objects</td>
+    <td>Repeated evaluation of a <I>string-literal</I> may yield different
+objects</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2767">
@@ -16414,7 +16415,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2768">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2768.html";>2768</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Assignment to enumeration variable with a <I>braced-init-list</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16430,15 +16431,15 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Trailing <I>requires-clause</I> can refer to function parameters 
before they are substituted into</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2771">
+  <tr id="2771">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2771.html";>2771</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Transformation for <I>unqualified-id</I>s in address operator</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2772">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2772.html";>2772</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Missing Annex C entry for linkage effects of 
<I>linkage-specification</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16456,7 +16457,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2775">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2775.html";>2775</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Unclear argument type for copy of exception object</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16466,15 +16467,15 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Substitution failure and implementation limits</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2777">
+  <tr id="2777">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2777.html";>2777</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Type of <I>id-expression</I> denoting a template parameter object</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2778">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2778.html";>2778</a></td>
-    <td>open</td>
+    <td>review</td>
     <td>Trivial destructor does not imply constant destruction</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16486,7 +16487,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2780">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2780.html";>2780</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td><TT>reinterpret_cast</TT> to reference to function types</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16504,7 +16505,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2783">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2783.html";>2783</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Handling of deduction guides in <I>global-module-fragment</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16516,7 +16517,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2785">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2785.html";>2785</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Type-dependence of <I>requires-expression</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16540,7 +16541,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2789">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2789.html";>2789</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Overload resolution with implicit and explicit object member 
functions</td>
     <td class="full" align="center">Clang 18</td>
   </tr>
@@ -16552,19 +16553,19 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2791">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2791.html";>2791</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Unclear phrasing about "returning to the caller"</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2792">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2792.html";>2792</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Clean up specification of <TT>noexcept</TT> operator</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2793">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2793.html";>2793</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Block-scope declaration conflicting with parameter name</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16576,25 +16577,25 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2795">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2795.html";>2795</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Overlapping empty subobjects with different cv-qualification</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2796">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2796.html";>2796</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Function pointer conversions for relational operators</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2797">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2797.html";>2797</a></td>
-    <td>open</td>
+    <td>review</td>
     <td>Meaning of "corresponds" for rewritten operator candidates</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr id="2798">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2798.html";>2798</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Manifestly constant evaluation of the <TT>static_assert</TT> 
message</td>
     <td class="full" align="center">Clang 17</td>
   </tr>
@@ -16612,7 +16613,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2801">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2801.html";>2801</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Reference binding with reference-related types</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16624,7 +16625,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2803">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2803.html";>2803</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Overload resolution for reference binding of similar types</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16642,13 +16643,13 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2806">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2806.html";>2806</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Make a <I>type-requirement</I> a type-only context</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2807">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2807.html";>2807</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Destructors declared <TT>consteval</TT></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16660,19 +16661,19 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr id="2809">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2809.html";>2809</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>An implicit definition does not redeclare a function</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2810">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2810.html";>2810</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Requiring the absence of diagnostics for templates</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2811">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2811.html";>2811</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Clarify "use" of main</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
@@ -16682,11 +16683,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Allocation with explicit alignment</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2813">
+  <tr id="2813">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2813.html";>2813</a></td>
-    <td>review</td>
+    <td>DR</td>
     <td>Class member access with prvalues</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2814">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2814.html";>2814</a></td>
@@ -16712,59 +16713,59 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>sizeof(abstract class) is underspecified</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2818">
+  <tr id="2818">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2818.html";>2818</a></td>
-    <td>review</td>
+    <td>tentatively ready</td>
     <td>Use of predefined reserved identifiers</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2819">
+  <tr id="2819">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2819.html";>2819</a></td>
-    <td>review</td>
+    <td>tentatively ready</td>
     <td>Cast from null pointer value in a constant expression</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2820">
+  <tr id="2820">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2820.html";>2820</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Value-initialization and default constructors</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2821">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2821.html";>2821</a></td>
-    <td>open</td>
+    <td>review</td>
     <td>Lifetime, zero-initialization, and dynamic initialization</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr id="2822">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2822.html";>2822</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Side-effect-free pointer zap</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2823">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2823.html";>2823</a></td>
-    <td>DR</td>
+    <td>DRWP</td>
     <td>Implicit undefined behavior when dereferencing pointers</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2824">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2824.html";>2824</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Copy-initialization of arrays</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="2825">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2825.html";>2825</a></td>
-    <td>tentatively ready</td>
+    <td>DR</td>
     <td>Range-based for statement using a <I>braced-init-list</I></td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr id="2826">
+  <tr class="open" id="2826">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2826.html";>2826</a></td>
-    <td>tentatively ready</td>
+    <td>drafting</td>
     <td>Missing definition of "temporary expression"</td>
-    <td class="unknown" align="center">Unknown</td>
+    <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2827">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2827.html";>2827</a></td>
@@ -16772,11 +16773,11 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Representation of unsigned integral types</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2828">
+  <tr id="2828">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2828.html";>2828</a></td>
-    <td>review</td>
+    <td>DR</td>
     <td>Ambiguous interpretation of C-style cast</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2829">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2829.html";>2829</a></td>
@@ -16784,17 +16785,17 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>Redundant case in restricting user-defined conversion sequences</td>
     <td align="center">Not resolved</td>
   </tr>
-  <tr class="open" id="2830">
+  <tr id="2830">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2830.html";>2830</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Top-level cv-qualification should be ignored for 
list-initialization</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="2831">
+  <tr id="2831">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2831.html";>2831</a></td>
-    <td>open</td>
+    <td>DR</td>
     <td>Non-templated function definitions and <I>requires-clause</I>s</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr class="open" id="2832">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2832.html";>2832</a></td>
@@ -16810,7 +16811,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr class="open" id="2834">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2834.html";>2834</a></td>
-    <td>open</td>
+    <td>review</td>
     <td>Partial ordering and explicit object parameters</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16822,7 +16823,7 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
   </tr>
   <tr class="open" id="2836">
     <td><a 
href="https://cplusplus.github.io/CWG/issues/2836.html";>2836</a></td>
-    <td>open</td>
+    <td>review</td>
     <td>Conversion rank of <TT>long double</TT> and extended floating-point 
types</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16855,6 +16856,246 @@ <h2 id="cxxdr">C++ defect report implementation 
status</h2>
     <td>open</td>
     <td>When do const objects start being const?</td>
     <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2842">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2842.html";>2842</a></td>
+    <td>open</td>
+    <td>Preferring an <TT>initializer_list</TT> over a single value</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2843">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2843.html";>2843</a></td>
+    <td>review</td>
+    <td>Undated reference to Unicode makes C++ a moving target</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2844">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2844.html";>2844</a></td>
+    <td>open</td>
+    <td>Enumerating a finite set of built-in candidates</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr id="2845">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2845.html";>2845</a></td>
+    <td>DR</td>
+    <td>Make the closure type of a captureless lambda a structural type</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2846">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2846.html";>2846</a></td>
+    <td>DR</td>
+    <td>Out-of-class definitions of explicit object member functions</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr class="open" id="2847">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2847.html";>2847</a></td>
+    <td>review</td>
+    <td>Constrained explicit specializations of function templates at class 
scope</td>
+    <td title="Clang 19 implements 2024-03-01 resolution" align="center">Not 
Resolved*</td>
+  </tr>
+  <tr id="2848">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2848.html";>2848</a></td>
+    <td>DR</td>
+    <td>Omitting an empty template argument list for explicit 
instantiation</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2849">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2849.html";>2849</a></td>
+    <td>DR</td>
+    <td>Parameter objects are not temporary objects</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2850">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2850.html";>2850</a></td>
+    <td>DR</td>
+    <td>Unclear storage duration for function parameter objects</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2851">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2851.html";>2851</a></td>
+    <td>DR</td>
+    <td>Allow floating-point conversions in converted constant expressions</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr class="open" id="2852">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2852.html";>2852</a></td>
+    <td>open</td>
+    <td>Complete-class contexts and class-scope lambdas</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr id="2853">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2853.html";>2853</a></td>
+    <td>DR</td>
+    <td>Pointer arithmetic with pointer to hypothetical element</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2854">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2854.html";>2854</a></td>
+    <td>DR</td>
+    <td>Storage duration of exception objects</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2855">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2855.html";>2855</a></td>
+    <td>DR</td>
+    <td>Undefined behavior in postfix increment</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2856">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2856.html";>2856</a></td>
+    <td>DR</td>
+    <td>Copy-list-initialization with explicit default constructors</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2857">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2857.html";>2857</a></td>
+    <td>DR</td>
+    <td>Argument-dependent lookup with incomplete class types</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2858">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2858.html";>2858</a></td>
+    <td>tentatively ready</td>
+    <td>Declarative <I>nested-name-specifier</I>s and 
<I>pack-index-specifier</I>s</td>
+    <td class="unreleased" align="center">Clang 19</td>
+  </tr>
+  <tr id="2859">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2859.html";>2859</a></td>
+    <td>tentatively ready</td>
+    <td>Value-initialization with multiple default constructors</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2860">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2860.html";>2860</a></td>
+    <td>dup</td>
+    <td>Remove and fix the term "vacuous initialization"</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2861">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2861.html";>2861</a></td>
+    <td>tentatively ready</td>
+    <td><TT>dynamic_cast</TT> on bad pointer value</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2862">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2862.html";>2862</a></td>
+    <td>tentatively ready</td>
+    <td>Unclear boundaries of template declarations</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2863">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2863.html";>2863</a></td>
+    <td>tentatively ready</td>
+    <td>Unclear synchronization requirements for object lifetime rules</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr id="2864">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2864.html";>2864</a></td>
+    <td>tentatively ready</td>
+    <td>Narrowing floating-point conversions</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr class="open" id="2865">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2865.html";>2865</a></td>
+    <td>open</td>
+    <td>Regression on result of conditional operator</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2866">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2866.html";>2866</a></td>
+    <td>open</td>
+    <td>Observing the effects of <TT>[[no_unique_address]]</TT></td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2867">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2867.html";>2867</a></td>
+    <td>open</td>
+    <td>Order of initialization for structured bindings</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2868">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2868.html";>2868</a></td>
+    <td>open</td>
+    <td>Self-references in trivially copyable objects as function return 
values</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2869">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2869.html";>2869</a></td>
+    <td>open</td>
+    <td><TT>this</TT> in local classes</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2870">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2870.html";>2870</a></td>
+    <td>open</td>
+    <td>Combining absent <I>encoding-prefix</I>es</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr id="2871">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2871.html";>2871</a></td>
+    <td>tentatively ready</td>
+    <td>User-declared constructor templates inhibiting default 
constructors</td>
+    <td class="unknown" align="center">Unknown</td>
+  </tr>
+  <tr class="open" id="2872">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2872.html";>2872</a></td>
+    <td>open</td>
+    <td>Linkage and unclear "can be referred to"</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2873">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2873.html";>2873</a></td>
+    <td>open</td>
+    <td>Taking the address of a function involving template argument 
deduction</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2874">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2874.html";>2874</a></td>
+    <td>open</td>
+    <td>Qualified declarations of partial specializations</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2875">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2875.html";>2875</a></td>
+    <td>open</td>
+    <td>Missing support for round-tripping nullptr through indirection/address 
operators</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2876">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2876.html";>2876</a></td>
+    <td>open</td>
+    <td>Disambiguation of <TT>T x = delete("text")</TT></td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2877">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2877.html";>2877</a></td>
+    <td>open</td>
+    <td>Type-only lookup for <I>using-enum-declarator</I></td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2878">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2878.html";>2878</a></td>
+    <td>open</td>
+    <td>C-style casts to reference types</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2879">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2879.html";>2879</a></td>
+    <td>open</td>
+    <td>Undesired outcomes with <TT>const_cast</TT></td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2880">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2880.html";>2880</a></td>
+    <td>open</td>
+    <td>Accessibility check for destructor of incomplete class type</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2881">
+    <td><a 
href="https://cplusplus.github.io/CWG/issues/2881.html";>2881</a></td>
+    <td>open</td>
+    <td>Type restrictions for the explicit object parameter of a lambda</td>
+    <td align="center">Not resolved</td>
   </tr></table>
 
 </div>
diff --git a/clang/www/make_cxx_dr_status b/clang/www/make_cxx_dr_status
index 7c0cf77a1524f7..57f1dc86fd1251 100755
--- a/clang/www/make_cxx_dr_status
+++ b/clang/www/make_cxx_dr_status
@@ -5,7 +5,7 @@ latest_release = 18
 
 clang_www_dir = os.path.dirname(__file__)
 default_issue_list_path = os.path.join(clang_www_dir, 'cwg_index.html')
-issue_list_url = "https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_index.html";
+issue_list_url = 
"https://raw.githubusercontent.com/cplusplus/CWG/gh-pages/issues/cwg_index.html";
 output = os.path.join(clang_www_dir, 'cxx_dr_status.html')
 dr_test_dir = os.path.join(clang_www_dir, '../test/CXX/drs')
 
@@ -138,10 +138,10 @@ def availability(issue):
 
   unresolved_status = ''
   proposed_resolution = ''
-  unresolved_status_match = re.search(r' (open|drafting|review)', status)
+  unresolved_status_match = re.search(r' (open|drafting|review|tentatively 
ready)', status)
   if unresolved_status_match:
     unresolved_status = unresolved_status_match.group(1)
-    proposed_resolution_match = re.search(r' (open|drafting|review) 
(\d{4}-\d{2}(?:-\d{2})?|P\d{4}R\d+)$', status)
+    proposed_resolution_match = re.search(r' (open|drafting|review|tentatively 
ready) (\d{4}-\d{2}(?:-\d{2})?|P\d{4}R\d+)$', status)
     if proposed_resolution_match is None:
       raise AvailabilityError('Issue {}: \'{}\' status should be followed by a 
paper number (P1234R5) or proposed resolution in YYYY-MM-DD 
format'.format(dr.issue, unresolved_status))
     proposed_resolution = proposed_resolution_match.group(2)

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

Reply via email to