Author: Mital Ashok Date: 2024-08-01T16:59:04+04:00 New Revision: 14c8feba4595d46d800bc8ac0c05a1a663b05002
URL: https://github.com/llvm/llvm-project/commit/14c8feba4595d46d800bc8ac0c05a1a663b05002 DIFF: https://github.com/llvm/llvm-project/commit/14c8feba4595d46d800bc8ac0c05a1a663b05002.diff LOG: [NFC] [Clang] Some core issues have changed status from tentatively ready -> ready / review (#97200) Also classes the "ready" status similarly to "tentatively ready" in make_cxx_dr_status Added: Modified: clang/test/CXX/drs/cwg25xx.cpp clang/test/CXX/drs/cwg28xx.cpp clang/www/cxx_dr_status.html clang/www/make_cxx_dr_status Removed: ################################################################################ diff --git a/clang/test/CXX/drs/cwg25xx.cpp b/clang/test/CXX/drs/cwg25xx.cpp index 0934f0cc19c6a..1c0d32fe3fdfc 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 struct C { constexpr C(auto) { } }; diff --git a/clang/test/CXX/drs/cwg28xx.cpp b/clang/test/CXX/drs/cwg28xx.cpp index c77bd433d8e21..9796607a790ce 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 #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 #if __cplusplus > 202302L @@ -134,23 +134,23 @@ struct A { } // namespace cwg2858 -namespace cwg2877 { // cwg2877: 19 tentatively ready 2024-05-31 +namespace cwg2877 { // cwg2877: 19 #if __cplusplus >= 202002L enum E { x }; void f() { int E; - using enum E; // OK, names ::E + using enum E; // OK } using F = E; -using enum F; // OK, designates ::E +using enum F; // OK template<class T> using EE = T; void g() { - using enum EE<E>; // OK, designates ::E + using enum EE<E>; // OK } #endif } // namespace cwg2877 -namespace cwg2881 { // cwg2881: 19 tentatively ready 2024-04-19 +namespace cwg2881 { // cwg2881: 19 #if __cplusplus >= 202302L @@ -216,11 +216,61 @@ void f() { o.decltype(L2)::operator()(); } +void f2() { + int x = 0; + auto lambda = [x] (this auto self) { return x; }; + using Lambda = decltype(lambda); + struct D : private Lambda { // expected-note {{declared private here}} + D(Lambda l) : Lambda(l) {} + using Lambda::operator(); + friend Lambda; + } d(lambda); + d(); // expected-error {{must derive publicly from the lambda}} +} + +template <typename L> +struct Private : private L { + using L::operator(); + Private(L l) : L(l) {} +}; + +template<typename T> +struct Indirect : T { + using T::operator(); +}; + +template<typename T> +struct Ambiguous : Indirect<T>, T { // expected-warning {{is inaccessible due to ambiguity}} + using Indirect<T>::operator(); +}; + +template <typename L> +constexpr auto f3(L l) -> decltype(Private<L>{l}()) { return l(); } +// expected-note@-1 {{must derive publicly from the lambda}} + +template <typename L> +constexpr auto f4(L l) -> decltype(Ambiguous<L>{{l}, l}()) { return l(); } +// expected-note@-1 {{is inaccessible due to ambiguity}} +// expected-note@-2 {{in instantiation of template class}} + +template<typename T> +concept is_callable = requires(T t) { { t() }; }; + +void g() { + int x = 0; + auto lambda = [x](this auto self) {}; + f3(lambda); // expected-error {{no matching function for call to 'f3'}} + f4(lambda); // expected-error {{no matching function for call to 'f4'}} + // expected-note@-1 {{while substituting deduced template arguments into function template 'f4'}} + static_assert(!is_callable<Private<decltype(lambda)>>); + static_assert(!is_callable<Ambiguous<decltype(lambda)>>); +} + #endif } // namespace cwg2881 -namespace cwg2882 { // cwg2882: 2.7 tentatively ready 2024-05-31 +namespace cwg2882 { // cwg2882: 2.7 struct C { operator void() = delete; // expected-warning@-1 {{conversion function converting 'cwg2882::C' to 'void' will never be used}} @@ -232,7 +282,7 @@ void f(C c) { } } // namespace cwg2882 -namespace cwg2883 { // cwg2883: no tentatively ready 2024-05-31 +namespace cwg2883 { // cwg2883: no #if __cplusplus >= 201103L void f() { int x; @@ -257,7 +307,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 +321,7 @@ static_assert(!__is_trivially_constructible(B)); #endif } // namespace cwg2885 -namespace cwg2886 { // cwg2886: 9 tentatively ready 2024-05-31 +namespace cwg2886 { // cwg2886: 9 #if __cplusplus >= 201103L struct C { C() = default; diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index 0b3477fbd217b..2206ff78e173e 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -1440,11 +1440,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>tentatively ready</td> + <td>DR</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> @@ -2763,7 +2763,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>DR</td> + <td>DRWP</td> <td>References may only bind to “valid” objects</td> <td class="unknown" align="center">Unknown</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> @@ -8805,11 +8805,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Lifetime of temporaries in range-based <TT>for</TT></td> <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="1499"> + <tr id="1499"> <td><a href="https://cplusplus.github.io/CWG/issues/1499.html">1499</a></td> - <td>drafting</td> + <td>DRWP</td> <td>Missing case for deleted move assignment operator</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr id="1500"> <td><a href="https://cplusplus.github.io/CWG/issues/1500.html">1500</a></td> @@ -9567,11 +9567,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Adding spaces between tokens in stringizing</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="1626"> + <tr id="1626"> <td><a href="https://cplusplus.github.io/CWG/issues/1626.html">1626</a></td> - <td>open</td> + <td>dup</td> <td><TT>constexpr</TT> member functions in <I>brace-or-equal-initializer</I>s</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr id="1627"> <td><a href="https://cplusplus.github.io/CWG/issues/1627.html">1627</a></td> @@ -11537,7 +11537,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>DR</td> + <td>DRWP</td> <td><TT>typeid</TT> null dereference check in subexpressions</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -12675,11 +12675,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Value-dependency via injected-class-name</td> <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2144"> + <tr id="2144"> <td><a href="https://cplusplus.github.io/CWG/issues/2144.html">2144</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Function/variable declaration ambiguity</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr id="2145"> <td><a href="https://cplusplus.github.io/CWG/issues/2145.html">2145</a></td> @@ -12707,7 +12707,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2149"> <td><a href="https://cplusplus.github.io/CWG/issues/2149.html">2149</a></td> - <td>DR</td> + <td>DRWP</td> <td>Brace elision and array length deduction</td> <td class="full" align="center">Clang 3.1</td> </tr> @@ -12927,11 +12927,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Cv-qualified numeric types</td> <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2186"> + <tr id="2186"> <td><a href="https://cplusplus.github.io/CWG/issues/2186.html">2186</a></td> - <td>drafting</td> + <td>C++20</td> <td>Unclear point that “preceding initialization” must precede</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr class="open" id="2187"> <td><a href="https://cplusplus.github.io/CWG/issues/2187.html">2187</a></td> @@ -14669,7 +14669,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>DR</td> + <td>DRWP</td> <td><I>placeholder-type-specifier</I>s and function declarators</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15011,7 +15011,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2533"> <td><a href="https://cplusplus.github.io/CWG/issues/2533.html">2533</a></td> - <td>DR</td> + <td>DRWP</td> <td>Storage duration of implicitly created objects</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15089,13 +15089,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>DR</td> + <td>DRWP</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>DR</td> + <td>DRWP</td> <td>Defaulted comparison operator function for non-classes</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15173,15 +15173,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>DR</td> + <td>DRWP</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>tentatively ready</td> + <td>DR</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> + <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> @@ -15221,7 +15221,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>DR</td> + <td>DRWP</td> <td>Access checking during synthesis of defaulted comparison operator</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15339,11 +15339,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>tentatively ready</td> + <td>DR</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> @@ -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="unreleased-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> @@ -15617,7 +15617,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>DR</td> + <td>DRWP</td> <td>Avoid circularity in specification of scope for friend class declarations</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15635,13 +15635,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>DR</td> + <td>DRWP</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>DR</td> + <td>DRWP</td> <td>Improve the example for initializing by initializer list</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15755,7 +15755,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>DR</td> + <td>DRWP</td> <td>Cv-qualification adjustment when binding reference to temporary</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15779,7 +15779,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2661"> <td><a href="https://cplusplus.github.io/CWG/issues/2661.html">2661</a></td> - <td>DR</td> + <td>DRWP</td> <td>Missing disambiguation rule for <I>pure-specifier</I> vs. <I>brace-or-equal-initializer</I></td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15821,7 +15821,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>DR</td> + <td>DRWP</td> <td><TT>co_await</TT> in a <I>lambda-expression</I></td> <td class="unknown" align="center">Unknown</td> </tr> @@ -15947,7 +15947,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>DR</td> + <td>DRWP</td> <td>Are cv-qualified <TT>std::nullptr_t</TT> fundamental types?</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16013,7 +16013,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2700"> <td><a href="https://cplusplus.github.io/CWG/issues/2700.html">2700</a></td> - <td>DR</td> + <td>DRWP</td> <td><TT>#error</TT> disallows existing implementation practice</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16055,7 +16055,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>DR</td> + <td>DRWP</td> <td>Deduction guides cannot have a trailing <I>requires-clause</I></td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16097,7 +16097,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2714"> <td><a href="https://cplusplus.github.io/CWG/issues/2714.html">2714</a></td> - <td>DR</td> + <td>DRWP</td> <td>Implicit deduction guides omit properties from the parameter-declaration-clause of a constructor</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16179,11 +16179,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>tentatively ready</td> + <td>DR</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> @@ -16283,13 +16283,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2745"> <td><a href="https://cplusplus.github.io/CWG/issues/2745.html">2745</a></td> - <td>DR</td> + <td>DRWP</td> <td>Dependent odr-use in generic lambdas</td> <td class="unknown" align="center">Unknown</td> </tr> <tr id="2746"> <td><a href="https://cplusplus.github.io/CWG/issues/2746.html">2746</a></td> - <td>DR</td> + <td>DRWP</td> <td>Checking of default template arguments</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16301,7 +16301,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2748"> <td><a href="https://cplusplus.github.io/CWG/issues/2748.html">2748</a></td> - <td>DR</td> + <td>DRWP</td> <td>Accessing static data members via null pointer</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16440,7 +16440,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2771"> <td><a href="https://cplusplus.github.io/CWG/issues/2771.html">2771</a></td> - <td>DR</td> + <td>DRWP</td> <td>Transformation for <I>unqualified-id</I>s in address operator</td> <td class="full" align="center">Clang 18</td> </tr> @@ -16464,7 +16464,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>DR</td> + <td>DRWP</td> <td>Unclear argument type for copy of exception object</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16476,7 +16476,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2777"> <td><a href="https://cplusplus.github.io/CWG/issues/2777.html">2777</a></td> - <td>DR</td> + <td>DRWP</td> <td>Type of <I>id-expression</I> denoting a template parameter object</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16632,7 +16632,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>DR</td> + <td>DRWP</td> <td>Overload resolution for reference binding of similar types</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16668,19 +16668,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>DR</td> + <td>DRWP</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>DR</td> + <td>DRWP</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>DR</td> + <td>DRWP</td> <td>Clarify "use" of main</td> <td class="full" align="center">Clang 3.5</td> </tr> @@ -16692,19 +16692,19 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2813"> <td><a href="https://cplusplus.github.io/CWG/issues/2813.html">2813</a></td> - <td>DR</td> + <td>DRWP</td> <td>Class member access with prvalues</td> <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2814"> + <tr id="2814"> <td><a href="https://cplusplus.github.io/CWG/issues/2814.html">2814</a></td> - <td>tentatively ready</td> + <td>NAD</td> <td>Alignment requirement of incomplete class type</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</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> @@ -16720,21 +16720,21 @@ <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>tentatively ready</td> + <td>DR</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>tentatively ready</td> + <td>accepted</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> + <td class="unreleased" align="center">Clang 19</td> </tr> <tr id="2820"> <td><a href="https://cplusplus.github.io/CWG/issues/2820.html">2820</a></td> - <td>DR</td> + <td>DRWP</td> <td>Value-initialization and default constructors</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16746,7 +16746,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2822"> <td><a href="https://cplusplus.github.io/CWG/issues/2822.html">2822</a></td> - <td>DR</td> + <td>DRWP</td> <td>Side-effect-free pointer zap</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16758,13 +16758,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2824"> <td><a href="https://cplusplus.github.io/CWG/issues/2824.html">2824</a></td> - <td>DR</td> + <td>DRWP</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>DR</td> + <td>DRWP</td> <td>Range-based for statement using a <I>braced-init-list</I></td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16782,7 +16782,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2828"> <td><a href="https://cplusplus.github.io/CWG/issues/2828.html">2828</a></td> - <td>DR</td> + <td>DRWP</td> <td>Ambiguous interpretation of C-style cast</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16794,13 +16794,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2830"> <td><a href="https://cplusplus.github.io/CWG/issues/2830.html">2830</a></td> - <td>DR</td> + <td>DRWP</td> <td>Top-level cv-qualification should be ignored for list-initialization</td> <td class="unknown" align="center">Unknown</td> </tr> <tr id="2831"> <td><a href="https://cplusplus.github.io/CWG/issues/2831.html">2831</a></td> - <td>DR</td> + <td>DRWP</td> <td>Non-templated function definitions and <I>requires-clause</I>s</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16828,11 +16828,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Name-independent declarations</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2836"> + <tr id="2836"> <td><a href="https://cplusplus.github.io/CWG/issues/2836.html">2836</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Conversion rank of <TT>long double</TT> and extended floating-point types</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr class="open" id="2837"> <td><a href="https://cplusplus.github.io/CWG/issues/2837.html">2837</a></td> @@ -16884,13 +16884,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2845"> <td><a href="https://cplusplus.github.io/CWG/issues/2845.html">2845</a></td> - <td>DR</td> + <td>DRWP</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>DRWP</td> <td>Out-of-class definitions of explicit object member functions</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16902,25 +16902,25 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2848"> <td><a href="https://cplusplus.github.io/CWG/issues/2848.html">2848</a></td> - <td>DR</td> + <td>DRWP</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>DRWP</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>DRWP</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>DRWP</td> <td>Allow floating-point conversions in converted constant expressions</td> <td class="unknown" align="center">Unknown</td> </tr> @@ -16932,45 +16932,45 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> </tr> <tr id="2853"> <td><a href="https://cplusplus.github.io/CWG/issues/2853.html">2853</a></td> - <td>DR</td> + <td>DRWP</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>DRWP</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>DRWP</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>DRWP</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>DRWP</td> <td>Argument-dependent lookup with incomplete class types</td> <td class="none" align="center">No</td> </tr> - <tr class="open" id="2858"> + <tr id="2858"> <td><a href="https://cplusplus.github.io/CWG/issues/2858.html">2858</a></td> - <td>tentatively ready</td> + <td>accepted</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> + <td class="unreleased" align="center">Clang 19</td> </tr> - <tr class="open" id="2859"> + <tr id="2859"> <td><a href="https://cplusplus.github.io/CWG/issues/2859.html">2859</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Value-initialization with multiple default constructors</td> - <td align="center">Not resolved</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> @@ -16978,15 +16978,15 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Remove and fix the term "vacuous initialization"</td> <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2861"> + <tr id="2861"> <td><a href="https://cplusplus.github.io/CWG/issues/2861.html">2861</a></td> - <td>tentatively ready</td> + <td>DR</td> <td><TT>dynamic_cast</TT> on bad pointer value</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</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>review</td> <td>Unclear boundaries of template declarations</td> <td align="center">Not resolved</td> </tr> @@ -16996,17 +16996,17 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Unclear synchronization requirements for object lifetime rules</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2864"> + <tr id="2864"> <td><a href="https://cplusplus.github.io/CWG/issues/2864.html">2864</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Narrowing floating-point conversions</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2865"> + <tr id="2865"> <td><a href="https://cplusplus.github.io/CWG/issues/2865.html">2865</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Regression on result of conditional operator</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr class="open" id="2866"> <td><a href="https://cplusplus.github.io/CWG/issues/2866.html">2866</a></td> @@ -17014,11 +17014,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Observing the effects of <TT>[[no_unique_address]]</TT></td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2867"> + <tr id="2867"> <td><a href="https://cplusplus.github.io/CWG/issues/2867.html">2867</a></td> - <td>review</td> + <td>DR</td> <td>Order of initialization for structured bindings</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr class="open" id="2868"> <td><a href="https://cplusplus.github.io/CWG/issues/2868.html">2868</a></td> @@ -17026,29 +17026,29 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Self-references in trivially copyable objects as function return values</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2869"> + <tr id="2869"> <td><a href="https://cplusplus.github.io/CWG/issues/2869.html">2869</a></td> - <td>tentatively ready</td> + <td>DR</td> <td><TT>this</TT> in local classes</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2870"> + <tr id="2870"> <td><a href="https://cplusplus.github.io/CWG/issues/2870.html">2870</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Combining absent <I>encoding-prefix</I>es</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2871"> + <tr id="2871"> <td><a href="https://cplusplus.github.io/CWG/issues/2871.html">2871</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>User-declared constructor templates inhibiting default constructors</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2872"> + <tr id="2872"> <td><a href="https://cplusplus.github.io/CWG/issues/2872.html">2872</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Linkage and unclear "can be referred to"</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr class="open" id="2873"> <td><a href="https://cplusplus.github.io/CWG/issues/2873.html">2873</a></td> @@ -17056,29 +17056,29 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Taking the address of a function involving template argument deduction</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2874"> + <tr id="2874"> <td><a href="https://cplusplus.github.io/CWG/issues/2874.html">2874</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Qualified declarations of partial specializations</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</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"> + <tr id="2876"> <td><a href="https://cplusplus.github.io/CWG/issues/2876.html">2876</a></td> - <td>tentatively ready</td> + <td>accepted</td> <td>Disambiguation of <TT>T x = delete("text")</TT></td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2877"> + <tr id="2877"> <td><a href="https://cplusplus.github.io/CWG/issues/2877.html">2877</a></td> - <td>tentatively ready</td> + <td>DR</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> + <td class="unreleased" align="center">Clang 19</td> </tr> <tr class="open" id="2878"> <td><a href="https://cplusplus.github.io/CWG/issues/2878.html">2878</a></td> @@ -17098,23 +17098,23 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Accessibility check for destructor of incomplete class type</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2881"> + <tr id="2881"> <td><a href="https://cplusplus.github.io/CWG/issues/2881.html">2881</a></td> - <td>tentatively ready</td> + <td>DR</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> + <td class="unreleased" align="center">Clang 19</td> </tr> - <tr class="open" id="2882"> + <tr id="2882"> <td><a href="https://cplusplus.github.io/CWG/issues/2882.html">2882</a></td> - <td>tentatively ready</td> + <td>DR</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> + <td class="full" align="center">Clang 2.7</td> </tr> - <tr class="open" id="2883"> + <tr id="2883"> <td><a href="https://cplusplus.github.io/CWG/issues/2883.html">2883</a></td> - <td>tentatively ready</td> + <td>DR</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> + <td class="none" align="center">No</td> </tr> <tr id="2884"> <td><a href="https://cplusplus.github.io/CWG/issues/2884.html">2884</a></td> @@ -17124,21 +17124,21 @@ <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"> + <tr id="2886"> <td><a href="https://cplusplus.github.io/CWG/issues/2886.html">2886</a></td> - <td>tentatively ready</td> + <td>DR</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> + <td class="full" align="center">Clang 9</td> </tr> - <tr class="open" id="2887"> + <tr id="2887"> <td><a href="https://cplusplus.github.io/CWG/issues/2887.html">2887</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Missing compatibility entries for xvalues</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr class="open" id="2888"> <td><a href="https://cplusplus.github.io/CWG/issues/2888.html">2888</a></td> @@ -17158,17 +17158,17 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Defining members of local classes</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2891"> + <tr id="2891"> <td><a href="https://cplusplus.github.io/CWG/issues/2891.html">2891</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Normative status of implementation limits</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> - <tr class="open" id="2892"> + <tr id="2892"> <td><a href="https://cplusplus.github.io/CWG/issues/2892.html">2892</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Unclear usual arithmetic conversions</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr id="2893"> <td><a href="https://cplusplus.github.io/CWG/issues/2893.html">2893</a></td> @@ -17182,11 +17182,11 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>Functional casts create prvalues of reference type</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2895"> + <tr id="2895"> <td><a href="https://cplusplus.github.io/CWG/issues/2895.html">2895</a></td> - <td>tentatively ready</td> + <td>DR</td> <td>Initialization should ignore the destination type's cv-qualification</td> - <td align="center">Not resolved</td> + <td class="unknown" align="center">Unknown</td> </tr> <tr class="open" id="2896"> <td><a href="https://cplusplus.github.io/CWG/issues/2896.html">2896</a></td> @@ -17235,6 +17235,90 @@ <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 diff erence 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> + <tr class="open" id="2913"> + <td><a href="https://cplusplus.github.io/CWG/issues/2913.html">2913</a></td> + <td>open</td> + <td>Grammar for <I>deduction-guide</I> has <I>requires-clause</I> in the wrong position</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2914"> + <td><a href="https://cplusplus.github.io/CWG/issues/2914.html">2914</a></td> + <td>open</td> + <td>Unclear order of initialization of static and thread-local variables</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2915"> + <td><a href="https://cplusplus.github.io/CWG/issues/2915.html">2915</a></td> + <td>open</td> + <td>Explicit object parameters of type <TT>void</TT></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2916"> + <td><a href="https://cplusplus.github.io/CWG/issues/2916.html">2916</a></td> + <td>open</td> + <td>Variable template partial specializations should not be declared <TT>static</TT></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2917"> + <td><a href="https://cplusplus.github.io/CWG/issues/2917.html">2917</a></td> + <td>open</td> + <td>Disallow multiple <I>friend-type-specifier</I>s for a friend template</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..773f14cfe3199 100755 --- a/clang/www/make_cxx_dr_status +++ b/clang/www/make_cxx_dr_status @@ -142,13 +142,12 @@ availability_error_occurred = False def availability(issue): status = status_map.get(issue, 'unknown') - 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 +245,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) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits