Skip to content

[NFC] [Clang] Some core issues have changed status from tentatively ready -> ready / review #97200

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Aug 1, 2024

Conversation

MitalAshok
Copy link
Contributor

Also classes the "ready" status similarly to "tentatively ready" in make_cxx_dr_status

@MitalAshok MitalAshok requested a review from Endilll as a code owner June 30, 2024 09:41
@llvmbot llvmbot added the clang Clang issues not falling into any other category label Jun 30, 2024
@llvmbot
Copy link
Member

llvmbot commented Jun 30, 2024

@llvm/pr-subscribers-clang

Author: Mital Ashok (MitalAshok)

Changes

Also classes the "ready" status similarly to "tentatively ready" in make_cxx_dr_status


Full diff: https://github.com/llvm/llvm-project/pull/97200.diff

4 Files Affected:

  • (modified) clang/test/CXX/drs/cwg25xx.cpp (+1-1)
  • (modified) clang/test/CXX/drs/cwg28xx.cpp (+8-8)
  • (modified) clang/www/cxx_dr_status.html (+92-38)
  • (modified) clang/www/make_cxx_dr_status (+3-3)
diff --git a/clang/test/CXX/drs/cwg25xx.cpp b/clang/test/CXX/drs/cwg25xx.cpp
index 0934f0cc19c6a..5f8a058f8157a 100644
--- a/clang/test/CXX/drs/cwg25xx.cpp
+++ b/clang/test/CXX/drs/cwg25xx.cpp
@@ -139,7 +139,7 @@ struct D3 : B {
 #endif
 
 #if __cplusplus >= 202302L
-namespace cwg2561 { // cwg2561: no tentatively ready 2024-03-18
+namespace cwg2561 { // cwg2561: no ready 2024-03-18
 struct C {
     constexpr C(auto) { }
 };
diff --git a/clang/test/CXX/drs/cwg28xx.cpp b/clang/test/CXX/drs/cwg28xx.cpp
index c77bd433d8e21..524e67b52de51 100644
--- a/clang/test/CXX/drs/cwg28xx.cpp
+++ b/clang/test/CXX/drs/cwg28xx.cpp
@@ -30,7 +30,7 @@ using U2 = decltype(&main);
 #endif
 } // namespace cwg2811
 
-namespace cwg2819 { // cwg2819: 19 tentatively ready 2023-12-01
+namespace cwg2819 { // cwg2819: 19 ready 2023-12-01
 #if __cpp_constexpr >= 202306L
   constexpr void* p = nullptr;
   constexpr int* q = static_cast<int*>(p);
@@ -111,7 +111,7 @@ struct D : N::B {
 #endif
 } // namespace cwg2857
 
-namespace cwg2858 { // cwg2858: 19 tentatively ready 2024-04-05
+namespace cwg2858 { // cwg2858: 19 ready 2024-04-05
 
 #if __cplusplus > 202302L
 
@@ -134,7 +134,7 @@ struct A {
 
 } // namespace cwg2858
 
-namespace cwg2877 { // cwg2877: 19 tentatively ready 2024-05-31
+namespace cwg2877 { // cwg2877: 19 ready 2024-05-31
 #if __cplusplus >= 202002L
 enum E { x };
 void f() {
@@ -150,7 +150,7 @@ void g() {
 #endif
 } // namespace cwg2877
 
-namespace cwg2881 { // cwg2881: 19 tentatively ready 2024-04-19
+namespace cwg2881 { // cwg2881: 19 ready 2024-04-19
 
 #if __cplusplus >= 202302L
 
@@ -220,7 +220,7 @@ void f() {
 
 } // namespace cwg2881
 
-namespace cwg2882 { // cwg2882: 2.7 tentatively ready 2024-05-31
+namespace cwg2882 { // cwg2882: 2.7 ready 2024-05-31
 struct C {
   operator void() = delete;
   // expected-warning@-1 {{conversion function converting 'cwg2882::C' to 'void' will never be used}}
@@ -232,7 +232,7 @@ void f(C c) {
 }
 } // namespace cwg2882
 
-namespace cwg2883 { // cwg2883: no tentatively ready 2024-05-31
+namespace cwg2883 { // cwg2883: no ready 2024-05-31
 #if __cplusplus >= 201103L
 void f() {
   int x;
@@ -257,7 +257,7 @@ void g() {
 #endif
 } // namespace cwg2883
 
-namespace cwg2885 { // cwg2885: 16 tentatively ready 2024-05-31
+namespace cwg2885 { // cwg2885: 16 review 2024-05-31
 #if __cplusplus >= 202002L
 template <class T>
 struct A {
@@ -271,7 +271,7 @@ static_assert(!__is_trivially_constructible(B));
 #endif
 } // namespace cwg2885
 
-namespace cwg2886 { // cwg2886: 9 tentatively ready 2024-05-31
+namespace cwg2886 { // cwg2886: 9 ready 2024-05-31
 #if __cplusplus >= 201103L
 struct C {
   C() = default;
diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html
index 937f67981e296..64b361976a5a5 100755
--- a/clang/www/cxx_dr_status.html
+++ b/clang/www/cxx_dr_status.html
@@ -1442,7 +1442,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="233">
     <td><a href="https://cplusplus.github.io/CWG/issues/233.html">233</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>References vs pointers in UDC overload resolution</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -7329,11 +7329,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
     <td>Overloading member function templates based on dependent return type</td>
     <td class="unknown" align="center">Unknown</td>
   </tr>
-  <tr class="open" id="1253">
+  <tr id="1253">
     <td><a href="https://cplusplus.github.io/CWG/issues/1253.html">1253</a></td>
-    <td>open</td>
+    <td>C++17</td>
     <td>Generic non-template members</td>
-    <td align="center">Not resolved</td>
+    <td class="unknown" align="center">Unknown</td>
   </tr>
   <tr id="1254">
     <td><a href="https://cplusplus.github.io/CWG/issues/1254.html">1254</a></td>
@@ -12677,7 +12677,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2144">
     <td><a href="https://cplusplus.github.io/CWG/issues/2144.html">2144</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Function/variable declaration ambiguity</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -15179,7 +15179,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2561">
     <td><a href="https://cplusplus.github.io/CWG/issues/2561.html">2561</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Conversion to function pointer for lambda with explicit object parameter</td>
     <td title="Clang does not implement 2024-03-18 resolution" align="center">Not Resolved*</td>
   </tr>
@@ -15341,7 +15341,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2588">
     <td><a href="https://cplusplus.github.io/CWG/issues/2588.html">2588</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>friend declarations and module linkage</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -15541,7 +15541,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
     <td><a href="https://cplusplus.github.io/CWG/issues/2621.html">2621</a></td>
     <td>C++23</td>
     <td>Kind of lookup for <TT>using enum</TT> declarations</td>
-    <td title="Clang 19 implements 2024-05-31 resolution" align="center">Superseded by <a href="#2877">2877</a></td>
+    <td class="-superseded" align="center">Superseded by <a href="#2877">2877</a></td>
   </tr>
   <tr id="2622">
     <td><a href="https://cplusplus.github.io/CWG/issues/2622.html">2622</a></td>
@@ -16181,7 +16181,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2728">
     <td><a href="https://cplusplus.github.io/CWG/issues/2728.html">2728</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Evaluation of conversions in a <I>delete-expression</I></td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16698,13 +16698,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2814">
     <td><a href="https://cplusplus.github.io/CWG/issues/2814.html">2814</a></td>
-    <td>tentatively ready</td>
+    <td>review</td>
     <td>Alignment requirement of incomplete class type</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2815">
     <td><a href="https://cplusplus.github.io/CWG/issues/2815.html">2815</a></td>
-    <td>open</td>
+    <td>drafting</td>
     <td>Overload resolution for references/pointers to <TT>noexcept</TT> functions</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16722,13 +16722,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2818">
     <td><a href="https://cplusplus.github.io/CWG/issues/2818.html">2818</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Use of predefined reserved identifiers</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2819">
     <td><a href="https://cplusplus.github.io/CWG/issues/2819.html">2819</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Cast from null pointer value in a constant expression</td>
     <td title="Clang 19 implements 2023-12-01 resolution" align="center">Not Resolved*</td>
   </tr>
@@ -16830,7 +16830,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>tentatively ready</td>
+    <td>ready</td>
     <td>Conversion rank of <TT>long double</TT> and extended floating-point types</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16962,13 +16962,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2858">
     <td><a href="https://cplusplus.github.io/CWG/issues/2858.html">2858</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Declarative <I>nested-name-specifier</I>s and <I>pack-index-specifier</I>s</td>
     <td title="Clang 19 implements 2024-04-05 resolution" align="center">Not Resolved*</td>
   </tr>
   <tr class="open" id="2859">
     <td><a href="https://cplusplus.github.io/CWG/issues/2859.html">2859</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Value-initialization with multiple default constructors</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16980,13 +16980,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2861">
     <td><a href="https://cplusplus.github.io/CWG/issues/2861.html">2861</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td><TT>dynamic_cast</TT> on bad pointer value</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2862">
     <td><a href="https://cplusplus.github.io/CWG/issues/2862.html">2862</a></td>
-    <td>tentatively ready</td>
+    <td>drafting</td>
     <td>Unclear boundaries of template declarations</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -16998,13 +16998,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2864">
     <td><a href="https://cplusplus.github.io/CWG/issues/2864.html">2864</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Narrowing floating-point conversions</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2865">
     <td><a href="https://cplusplus.github.io/CWG/issues/2865.html">2865</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Regression on result of conditional operator</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -17016,7 +17016,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2867">
     <td><a href="https://cplusplus.github.io/CWG/issues/2867.html">2867</a></td>
-    <td>review</td>
+    <td>ready</td>
     <td>Order of initialization for structured bindings</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -17028,25 +17028,25 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2869">
     <td><a href="https://cplusplus.github.io/CWG/issues/2869.html">2869</a></td>
-    <td>tentatively ready</td>
+    <td>ready</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>tentatively ready</td>
+    <td>ready</td>
     <td>Combining absent <I>encoding-prefix</I>es</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2871">
     <td><a href="https://cplusplus.github.io/CWG/issues/2871.html">2871</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>User-declared constructor templates inhibiting default constructors</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2872">
     <td><a href="https://cplusplus.github.io/CWG/issues/2872.html">2872</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Linkage and unclear "can be referred to"</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -17058,25 +17058,25 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2874">
     <td><a href="https://cplusplus.github.io/CWG/issues/2874.html">2874</a></td>
-    <td>tentatively ready</td>
+    <td>ready</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>tentatively ready</td>
+    <td>review</td>
     <td>Missing support for round-tripping null pointer values 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>tentatively ready</td>
+    <td>ready</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>tentatively ready</td>
+    <td>ready</td>
     <td>Type-only lookup for <I>using-enum-declarator</I></td>
     <td title="Clang 19 implements 2024-05-31 resolution" align="center">Not Resolved*</td>
   </tr>
@@ -17100,19 +17100,19 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2881">
     <td><a href="https://cplusplus.github.io/CWG/issues/2881.html">2881</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Type restrictions for the explicit object parameter of a lambda</td>
     <td title="Clang 19 implements 2024-04-19 resolution" align="center">Not Resolved*</td>
   </tr>
   <tr class="open" id="2882">
     <td><a href="https://cplusplus.github.io/CWG/issues/2882.html">2882</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Unclear treatment of conversion to <TT>void</TT></td>
     <td title="Clang 2.7 implements 2024-05-31 resolution" align="center">Not Resolved*</td>
   </tr>
   <tr class="open" id="2883">
     <td><a href="https://cplusplus.github.io/CWG/issues/2883.html">2883</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Definition of "odr-usable" ignores lambda scopes</td>
     <td title="Clang does not implement 2024-05-31 resolution" align="center">Not Resolved*</td>
   </tr>
@@ -17124,19 +17124,19 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2885">
     <td><a href="https://cplusplus.github.io/CWG/issues/2885.html">2885</a></td>
-    <td>tentatively ready</td>
+    <td>review</td>
     <td>Non-eligible trivial default constructors</td>
     <td title="Clang 16 implements 2024-05-31 resolution" align="center">Not Resolved*</td>
   </tr>
   <tr class="open" id="2886">
     <td><a href="https://cplusplus.github.io/CWG/issues/2886.html">2886</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Temporaries and trivial potentially-throwing special member functions</td>
     <td title="Clang 9 implements 2024-05-31 resolution" align="center">Not Resolved*</td>
   </tr>
   <tr class="open" id="2887">
     <td><a href="https://cplusplus.github.io/CWG/issues/2887.html">2887</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Missing compatibility entries for xvalues</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -17160,13 +17160,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2891">
     <td><a href="https://cplusplus.github.io/CWG/issues/2891.html">2891</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Normative status of implementation limits</td>
     <td align="center">Not resolved</td>
   </tr>
   <tr class="open" id="2892">
     <td><a href="https://cplusplus.github.io/CWG/issues/2892.html">2892</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Unclear usual arithmetic conversions</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -17184,7 +17184,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
   </tr>
   <tr class="open" id="2895">
     <td><a href="https://cplusplus.github.io/CWG/issues/2895.html">2895</a></td>
-    <td>tentatively ready</td>
+    <td>ready</td>
     <td>Initialization should ignore the destination type's cv-qualification</td>
     <td align="center">Not resolved</td>
   </tr>
@@ -17235,6 +17235,60 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
     <td>tentatively ready</td>
     <td>Can we omit the <TT>template</TT> disambiguator in <I>nested-name-specifier</I>s in type-only contexts?</td>
     <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2904">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2904.html">2904</a></td>
+    <td>open</td>
+    <td>Introducing <I>template-name</I>s</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2905">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2905.html">2905</a></td>
+    <td>tentatively ready</td>
+    <td>Value-dependence of <I>noexcept-expression</I></td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2906">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2906.html">2906</a></td>
+    <td>tentatively ready</td>
+    <td>Lvalue-to-rvalue conversion of class types for conditional operator</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2907">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2907.html">2907</a></td>
+    <td>open</td>
+    <td>Constant lvalue-to-rvalue conversion on uninitialized <TT>std::nullptr_t</TT></td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2908">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2908.html">2908</a></td>
+    <td>open</td>
+    <td>Counting physical source lines for <TT>__LINE__</TT></td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2909">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2909.html">2909</a></td>
+    <td>open</td>
+    <td>Subtle difference between constant-initialized and constexpr</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2910">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2910.html">2910</a></td>
+    <td>open</td>
+    <td>Effect of <I>requirement-parameter-list</I>s on odr-usability</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2911">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2911.html">2911</a></td>
+    <td>open</td>
+    <td>Unclear meaning of expressions "appearing within" subexpressions</td>
+    <td align="center">Not resolved</td>
+  </tr>
+  <tr class="open" id="2912">
+    <td><a href="https://cplusplus.github.io/CWG/issues/2912.html">2912</a></td>
+    <td>open</td>
+    <td>Too-large value for size in array new</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 1d337fc4e5f87..fe267a6ddbfb2 100755
--- a/clang/www/make_cxx_dr_status
+++ b/clang/www/make_cxx_dr_status
@@ -145,10 +145,10 @@ def availability(issue):
 
   unresolved_status = ''
   proposed_resolution = ''
-  unresolved_status_match = re.search(r' (open|drafting|review|tentatively ready)', status)
+  unresolved_status_match = re.search(r' (open|drafting|review|tentatively ready|ready)', status)
   if unresolved_status_match:
     unresolved_status = unresolved_status_match.group(1)
-    proposed_resolution_match = re.search(r' (open|drafting|review|tentatively ready) (\d{4}-\d{2}(?:-\d{2})?|P\d{4}R\d+)$', status)
+    proposed_resolution_match = re.search(r' (open|drafting|review|tentatively ready|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)
@@ -246,7 +246,7 @@ for dr in drs:
     avail = 'Extension'
     avail_style = ''
 
-  elif dr.status in ('open', 'drafting', 'review', 'tentatively ready'):
+  elif dr.status in ('open', 'drafting', 'review', 'tentatively ready', 'ready'):
     row_style = ' class="open"'
     try:
       avail, avail_style, unresolved_status, tooltip = availability(dr.issue)

Copy link
Contributor

@Endilll Endilll left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for taking care of this!
But I'd like to emphasize that updating statuses of existing DR tests is not just a menial task, otherwise I wouldn't even bother making the script this strict about statuses in the first place.

@@ -150,7 +150,7 @@ void g() {
#endif
} // namespace cwg2877

namespace cwg2881 { // cwg2881: 19 tentatively ready 2024-04-19
namespace cwg2881 { // cwg2881: 19 ready 2024-04-19
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this was added, wording has changed slightly, and a new ill-formed example was added. See https://github.com/cplusplus/CWG/blame/gh-pages/issues/2881.html
CC @Sirraide

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We’re already rejecting the ill-formed example in question, but we should probably add that as a test case.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do still need a test for template deduction, though, because from what I can tell, the wording is still the same, except that this is now also specified as causing template argument deduction to fail.

@Endilll Endilll requested a review from Sirraide June 30, 2024 10:10
No wording changed when the status changed from tentatively ready -> ready

cplusplus/CWG@88301b7#diff-7f6b9e6fa45271f479d29c851c4a8b0904f563aadff7a477b53f977113816fa1
No wording changed when the status changed from tentatively ready -> ready

cplusplus/CWG@7d046fa#diff-e987bc686b50066d0b5e3a9550c2d159f8e2468f1b0c678886ae0b477020740f
No wording changed when the status changed from tentatively ready -> review

cplusplus/CWG@858b5e8#diff-e0e6ed8a272741d6e662722daaef5dc2682c113d6ef698b3228c3b01dfa30a93
A new example was also added and Clang rejects it as expected

cplusplus/CWG@d7a3a3d

The wording change is:

2024-05-17:
 - Attempting to give a type not permitted for an explicit
   object parameter of a lambda's function call operator
   (7.5.5.2 expr.prim.lambda.closure)

2024-06-26:
 - Attempting to give to an explicit object parameter of
   a lambda's function call operator a type not peremitted for such
   (7.5.5.2 expr.prim.lambda.closure)
Only the comments in the example code were changed so there should be no functional difference

cplusplus/CWG@b702285
Use same error format as the other tests
@cor3ntin
Copy link
Contributor

cor3ntin commented Jul 18, 2024

@MitalAshok @Sirraide ping!

Copy link
Member

@Sirraide Sirraide left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CWG2881 tests LGTM except for one comment.

Imo it’d be better for e.g. @Endilll to approve the pr as a whole since I don’t have much experience experience w/ managing DR-related tests.

Copy link
Contributor

@Endilll Endilll left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to include here new issues that has been filed since this PR was published. CWG did not meet since St. Louis, so it shouldn't add any more work for you.

Ready -> Accepted or DR

Treat accepted like ready

Dates were changed to the first date when there were no changes to the proposed resolution

(Only https://raw.githubusercontent.com/cplusplus/CWG/gh-pages/issues/cwg_index.html shows 'accepted' as a status, individual pages like https://cplusplus.github.io/CWG/issues/2819.html still show 'ready')
Copy link
Contributor

@Endilll Endilll left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.
I hope that make_cxx_dr_status script is also happy.
Thank you for seeing this through!

@MitalAshok
Copy link
Contributor Author

I've just found out "accepted" is a resolved DR, not open: https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#Issue%20Status

@MitalAshok
Copy link
Contributor Author

@Endilll It should be good to merge after the last quick commit (which just ran cxx_make_dr_status). Could you please merge this for me? Thanks!

@Endilll Endilll merged commit 14c8feb into llvm:main Aug 1, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang Clang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants