llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Vlad Serebrennikov (Endilll) <details> <summary>Changes</summary> Following [recent discussion](http://lists.isocpp.org/core/2025/10/18637.php) on CWG reflector, `cwg_index.html` now contains section number and stable name of that section for each Core issue. I thought that this would be a useful information to have on our C++ DR status page for that handful of experts who actually open it, so here we are. This PR consists of 3 parts: 1. Rewrite of a small routine that parses `cwg_index.html` from splits and indicies to a single regular expression with named groups, adding section information. 2. Changes to the rest of the `make_cxx_dr_status` to accommodate for the first part. 3. Regenerated `cxx_dr_status.html`. Ideally this PR would only add lines to `cxx_dr_status.html`, but previously we've been leaving some newlines in issue titles (which never affected how this page is rendered), which are now properly replaced with whitespaces — hence a couple of deletions in that file. --- Patch is 1.01 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/165749.diff 2 Files Affected: - (modified) clang/www/cxx_dr_status.html (+6128-9) - (modified) clang/www/make_cxx_dr_status (+43-29) ``````````diff diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index ae9b28ee625cd..f1e3cad57aa99 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -43,2840 +43,3784 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <table width="689" border="1" cellspacing="0"> <tr> <th>Number</th> + <th>Section</th> + <th>Section name</th> <th>Status</th> <th>Issue title</th> <th>Available in Clang?</th> </tr> <tr id="1"> <td><a href="https://cplusplus.github.io/CWG/issues/1.html">1</a></td> + <td>9.3.4.7</td> + <td>[<a href="https://wg21.link/dcl.fct.default">dcl.fct.default</a>]</td> <td>TC1</td> <td>What if two using-declarations refer to the same function but the declarations introduce different default-arguments?</td> <td class="none" align="center">No</td> </tr> <tr class="open" id="2"> <td><a href="https://cplusplus.github.io/CWG/issues/2.html">2</a></td> + <td>13.8.4</td> + <td>[<a href="https://wg21.link/temp.dep.res">temp.dep.res</a>]</td> <td>drafting</td> <td>How can dependent names be used in member declarations that appear outside of the class template definition?</td> <td align="center">Not resolved</td> </tr> <tr id="3"> <td><a href="https://cplusplus.github.io/CWG/issues/3.html">3</a></td> + <td>13.9.4</td> + <td>[<a href="https://wg21.link/temp.expl.spec">temp.expl.spec</a>]</td> <td>NAD</td> <td>The template compilation model rules render some explicit specialization declarations not visible during instantiation</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="4"> <td><a href="https://cplusplus.github.io/CWG/issues/4.html">4</a></td> + <td>9.12</td> + <td>[<a href="https://wg21.link/dcl.link">dcl.link</a>]</td> <td>CD1</td> <td>Does extern "C" affect the linkage of function names with internal linkage?</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="5"> <td><a href="https://cplusplus.github.io/CWG/issues/5.html">5</a></td> + <td>9.5</td> + <td>[<a href="https://wg21.link/dcl.init">dcl.init</a>]</td> <td>CD1</td> <td>CV-qualifiers and type conversions</td> <td class="full" align="center">Clang 3.1</td> </tr> <tr id="6"> <td><a href="https://cplusplus.github.io/CWG/issues/6.html">6</a></td> + <td>11.9.6</td> + <td>[<a href="https://wg21.link/class.copy.elision">class.copy.elision</a>]</td> <td>NAD</td> <td>Should the optimization that allows a class object to alias another object also allow the case of a parameter in an inline function to alias its argument?</td> <td class="unknown" align="center">Unknown</td> </tr> <tr id="7"> <td><a href="https://cplusplus.github.io/CWG/issues/7.html">7</a></td> + <td>11.8.3</td> + <td>[<a href="https://wg21.link/class.access.base">class.access.base</a>]</td> <td>NAD</td> <td>Can a class with a private virtual base class be derived from?</td> <td class="full" align="center">Clang 3.4</td> </tr> <tr id="8"> <td><a href="https://cplusplus.github.io/CWG/issues/8.html">8</a></td> + <td>11.8</td> + <td>[<a href="https://wg21.link/class.access">class.access</a>]</td> <td>CD1</td> <td>Access to template arguments used in a function return type and in the nested name specifier</td> <td class="full" align="center">Duplicate of <a href="#45">45</a></td> </tr> <tr id="9"> <td><a href="https://cplusplus.github.io/CWG/issues/9.html">9</a></td> + <td>11.8.3</td> + <td>[<a href="https://wg21.link/class.access.base">class.access.base</a>]</td> <td>CD1</td> <td>Clarification of access to base class members</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="10"> <td><a href="https://cplusplus.github.io/CWG/issues/10.html">10</a></td> + <td>11.8.8</td> + <td>[<a href="https://wg21.link/class.access.nest">class.access.nest</a>]</td> <td>CD1</td> <td>Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?</td> <td class="full" align="center">Duplicate of <a href="#45">45</a></td> </tr> <tr id="11"> <td><a href="https://cplusplus.github.io/CWG/issues/11.html">11</a></td> + <td>9.10</td> + <td>[<a href="https://wg21.link/namespace.udecl">namespace.udecl</a>]</td> <td>CD1</td> <td>How do the keywords typename/template interact with using-declarations?</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="12"> <td><a href="https://cplusplus.github.io/CWG/issues/12.html">12</a></td> + <td>6.5.4</td> + <td>[<a href="https://wg21.link/basic.lookup.argdep">basic.lookup.argdep</a>]</td> <td>dup</td> <td>Default arguments on different declarations for the same function and the Koenig lookup</td> <td class="full-superseded" align="center">Superseded by <a href="#239">239</a></td> </tr> <tr id="13"> <td><a href="https://cplusplus.github.io/CWG/issues/13.html">13</a></td> + <td>9.12</td> + <td>[<a href="https://wg21.link/dcl.link">dcl.link</a>]</td> <td>NAD</td> <td>extern "C" for Parameters of Function Templates</td> <td class="none" align="center">No</td> </tr> <tr id="14"> <td><a href="https://cplusplus.github.io/CWG/issues/14.html">14</a></td> + <td>9.12</td> + <td>[<a href="https://wg21.link/dcl.link">dcl.link</a>]</td> <td>NAD</td> <td>extern "C" functions and declarations in different namespaces</td> <td class="full" align="center">Clang 3.4</td> </tr> <tr id="15"> <td><a href="https://cplusplus.github.io/CWG/issues/15.html">15</a></td> + <td>9.3.4.7</td> + <td>[<a href="https://wg21.link/dcl.fct.default">dcl.fct.default</a>]</td> <td>dup</td> <td>Default arguments for parameters of function templates</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="16"> <td><a href="https://cplusplus.github.io/CWG/issues/16.html">16</a></td> + <td>11.8.3</td> + <td>[<a href="https://wg21.link/class.access.base">class.access.base</a>]</td> <td>CD1</td> <td>Access to members of indirect private base classes</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="17"> <td><a href="https://cplusplus.github.io/CWG/issues/17.html">17</a></td> + <td>11.8.3</td> + <td>[<a href="https://wg21.link/class.access.base">class.access.base</a>]</td> <td>NAD</td> <td>Footnote 99 should discuss the naming class when describing members that can be accessed from friends</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="18"> <td><a href="https://cplusplus.github.io/CWG/issues/18.html">18</a></td> + <td>9.3.4.6</td> + <td>[<a href="https://wg21.link/dcl.fct">dcl.fct</a>]</td> <td>NAD</td> <td>f(TYPE) where TYPE is void should be allowed</td> <td class="full-superseded" align="center">Superseded by <a href="#577">577</a></td> </tr> <tr id="19"> <td><a href="https://cplusplus.github.io/CWG/issues/19.html">19</a></td> + <td>11.8.5</td> + <td>[<a href="https://wg21.link/class.protected">class.protected</a>]</td> <td>NAD</td> <td>Clarify protected member access</td> <td class="full" align="center">Clang 3.1</td> </tr> <tr id="20"> <td><a href="https://cplusplus.github.io/CWG/issues/20.html">20</a></td> + <td>11.4.5.3</td> + <td>[<a href="https://wg21.link/class.copy.ctor">class.copy.ctor</a>]</td> <td>TC1</td> <td>Some clarifications needed for 12.8 para 15</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="21"> <td><a href="https://cplusplus.github.io/CWG/issues/21.html">21</a></td> + <td>13.2</td> + <td>[<a href="https://wg21.link/temp.param">temp.param</a>]</td> <td>TC1</td> <td>Can a default argument for a template parameter appear in a friend declaration?</td> <td class="full" align="center">Clang 3.4</td> </tr> <tr id="22"> <td><a href="https://cplusplus.github.io/CWG/issues/22.html">22</a></td> + <td>13.8.4</td> + <td>[<a href="https://wg21.link/temp.dep.res">temp.dep.res</a>]</td> <td>TC1</td> <td>Template parameter with a default argument that refers to itself</td> <td class="full-superseded" align="center">Superseded by <a href="#481">481</a></td> </tr> <tr id="23"> <td><a href="https://cplusplus.github.io/CWG/issues/23.html">23</a></td> + <td>13.7.7.3</td> + <td>[<a href="https://wg21.link/temp.func.order">temp.func.order</a>]</td> <td>NAD</td> <td>Some questions regarding partial ordering of function templates</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="24"> <td><a href="https://cplusplus.github.io/CWG/issues/24.html">24</a></td> + <td>13.9.4</td> + <td>[<a href="https://wg21.link/temp.expl.spec">temp.expl.spec</a>]</td> <td>TC1</td> <td>Errors in examples in 14.7.3</td> <td class="na" align="center">N/A</td> </tr> <tr id="25"> <td><a href="https://cplusplus.github.io/CWG/issues/25.html">25</a></td> + <td>14.5</td> + <td>[<a href="https://wg21.link/except.spec">except.spec</a>]</td> <td>TC1</td> <td>Exception specifications and pointers to members</td> <td class="full" align="center">Clang 4</td> </tr> <tr id="26"> <td><a href="https://cplusplus.github.io/CWG/issues/26.html">26</a></td> + <td>11.4.5.3</td> + <td>[<a href="https://wg21.link/class.copy.ctor">class.copy.ctor</a>]</td> <td>NAD</td> <td>Copy constructors and default arguments</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="27"> <td><a href="https://cplusplus.github.io/CWG/issues/27.html">27</a></td> + <td>12.5</td> + <td>[<a href="https://wg21.link/over.built">over.built</a>]</td> <td>NAD</td> <td>Overload ambiguities for builtin ?: prototypes</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="28"> <td><a href="https://cplusplus.github.io/CWG/issues/28.html">28</a></td> + <td>6.10.3.3</td> + <td>[<a href="https://wg21.link/basic.start.dynamic">basic.start.dynamic</a>]</td> <td>CD1</td> <td>'exit', 'signal' and static object destruction</td> <td class="na" align="center">N/A (Library DR)</td> </tr> <tr id="29"> <td><a href="https://cplusplus.github.io/CWG/issues/29.html">29</a></td> + <td>9.12</td> + <td>[<a href="https://wg21.link/dcl.link">dcl.link</a>]</td> <td>CD1</td> <td>Linkage of locally declared functions</td> <td class="full" align="center">Clang 3.4</td> </tr> <tr id="30"> <td><a href="https://cplusplus.github.io/CWG/issues/30.html">30</a></td> + <td>13.3</td> + <td>[<a href="https://wg21.link/temp.names">temp.names</a>]</td> <td>TC1</td> <td>Valid uses of "<TT>::template</TT>"</td> <td class="full-superseded" align="center">Superseded by <a href="#468">468</a> (C++11 onwards)</td> </tr> <tr id="31"> <td><a href="https://cplusplus.github.io/CWG/issues/31.html">31</a></td> + <td>7.6.2.8</td> + <td>[<a href="https://wg21.link/expr.new">expr.new</a>]</td> <td>NAD</td> <td>Looking up new/delete</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="32"> <td><a href="https://cplusplus.github.io/CWG/issues/32.html">32</a></td> + <td>13</td> + <td>[<a href="https://wg21.link/temp">temp</a>]</td> <td>TC1</td> <td>Clarification of explicit instantiation of non-exported templates</td> <td class="na" align="center">N/A</td> </tr> <tr id="33"> <td><a href="https://cplusplus.github.io/CWG/issues/33.html">33</a></td> + <td>6.5.4</td> + <td>[<a href="https://wg21.link/basic.lookup.argdep">basic.lookup.argdep</a>]</td> <td>TC1</td> <td>Argument dependent lookup and overloaded functions</td> <td class="full" align="center">Clang 9</td> </tr> <tr id="34"> <td><a href="https://cplusplus.github.io/CWG/issues/34.html">34</a></td> + <td>13.9.2</td> + <td>[<a href="https://wg21.link/temp.inst">temp.inst</a>]</td> <td>NAD</td> <td>Argument dependent lookup and points of instantiation</td> <td class="na" align="center">N/A</td> </tr> <tr id="35"> <td><a href="https://cplusplus.github.io/CWG/issues/35.html">35</a></td> + <td>9.5</td> + <td>[<a href="https://wg21.link/dcl.init">dcl.init</a>]</td> <td>TC1</td> <td>Definition of default-initialization</td> <td class="full" align="center">Duplicate of <a href="#178">178</a></td> </tr> <tr id="36"> <td><a href="https://cplusplus.github.io/CWG/issues/36.html">36</a></td> + <td>9.10</td> + <td>[<a href="https://wg21.link/namespace.udecl">namespace.udecl</a>]</td> <td>CD6</td> <td><I>using-declaration</I>s in multiple-declaration contexts</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="37"> <td><a href="https://cplusplus.github.io/CWG/issues/37.html">37</a></td> + <td>_N5001_.14.6.3</td> + <td>[<a href="https://wg21.link/except.uncaught">except.uncaught</a>]</td> <td>NAD</td> <td>When is uncaught_exception() true?</td> <td class="unknown-superseded" align="center">Superseded by <a href="#475">475</a></td> </tr> <tr id="38"> <td><a href="https://cplusplus.github.io/CWG/issues/38.html">38</a></td> + <td>13.3</td> + <td>[<a href="https://wg21.link/temp.names">temp.names</a>]</td> <td>TC1</td> <td>Explicit template arguments and operator functions</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="39"> <td><a href="https://cplusplus.github.io/CWG/issues/39.html">39</a></td> + <td>6.5.2</td> + <td>[<a href="https://wg21.link/class.member.lookup">class.member.lookup</a>]</td> <td>CD1</td> <td>Conflicting ambiguity rules</td> <td class="none" align="center">No</td> </tr> <tr id="40"> <td><a href="https://cplusplus.github.io/CWG/issues/40.html">40</a></td> + <td>9.3.4</td> + <td>[<a href="https://wg21.link/dcl.meaning">dcl.meaning</a>]</td> <td>TC1</td> <td>Syntax of <I>declarator-id</I></td> <td class="na" align="center">N/A</td> </tr> <tr id="41"> <td><a href="https://cplusplus.github.io/CWG/issues/41.html">41</a></td> + <td>6.5.3</td> + <td>[<a href="https://wg21.link/basic.lookup.unqual">basic.lookup.unqual</a>]</td> <td>TC1</td> <td>Clarification of lookup of names after declarator-id</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="42"> <td><a href="https://cplusplus.github.io/CWG/issues/42.html">42</a></td> + <td>6.4.7</td> + <td>[<a href="https://wg21.link/basic.scope.class">basic.scope.class</a>]</td> <td>NAD</td> <td>Redefining names from base classes</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="43"> <td><a href="https://cplusplus.github.io/CWG/issues/43.html">43</a></td> + <td>6.9</td> + <td>[<a href="https://wg21.link/basic.types">basic.types</a>]</td> <td>TC1</td> <td>Copying base classes (PODs) using memcpy</td> <td class="na" align="center">N/A</td> </tr> <tr id="44"> <td><a href="https://cplusplus.github.io/CWG/issues/44.html">44</a></td> + <td>13.9.4</td> + <td>[<a href="https://wg21.link/temp.expl.spec">temp.expl.spec</a>]</td> <td>CD1</td> <td>Member specializations</td> <td class="partial-superseded" align="center">Superseded by <a href="#727">727</a></td> </tr> <tr id="45"> <td><a href="https://cplusplus.github.io/CWG/issues/45.html">45</a></td> + <td>11.8.8</td> + <td>[<a href="https://wg21.link/class.access.nest">class.access.nest</a>]</td> <td>CD1</td> <td>Access to nested classes</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="46"> <td><a href="https://cplusplus.github.io/CWG/issues/46.html">46</a></td> + <td>13.9.3</td> + <td>[<a href="https://wg21.link/temp.explicit">temp.explicit</a>]</td> <td>NAD</td> <td>Explicit instantiation of member templates</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="47"> <td><a href="https://cplusplus.github.io/CWG/issues/47.html">47</a></td> + <td>13.7.5</td> + <td>[<a href="https://wg21.link/temp.friend">temp.friend</a>]</td> <td>NAD</td> <td>Template friend issues</td> <td class="full-superseded" align="center">Superseded by <a href="#329">329</a></td> </tr> <tr id="48"> <td><a href="https://cplusplus.github.io/CWG/issues/48.html">48</a></td> + <td>11.4.9.3</td> + <td>[<a href="https://wg21.link/class.static.data">class.static.data</a>]</td> <td>TC1</td> <td>Definitions of unused static members</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="49"> <td><a href="https://cplusplus.github.io/CWG/issues/49.html">49</a></td> + <td>13.2</td> + <td>[<a href="https://wg21.link/temp.param">temp.param</a>]</td> <td>TC1</td> <td>Restriction on non-type, non-value template arguments</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="50"> <td><a href="https://cplusplus.github.io/CWG/issues/50.html">50</a></td> + <td>6.3</td> + <td>[<a href="https://wg21.link/basic.def.odr">basic.def.odr</a>]</td> <td>NAD</td> <td>Converting pointer to incomplete type to same type</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="51"> <td><a href="https://cplusplus.github.io/CWG/issues/51.html">51</a></td> + <td>12.2.4</td> + <td>[<a href="https://wg21.link/over.match.best">over.match.best</a>]</td> <td>TC1</td> <td>Overloading and user-defined conversions</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="52"> <td><a href="https://cplusplus.github.io/CWG/issues/52.html">52</a></td> + <td>7.6.1.5</td> + <td>[<a href="https://wg21.link/expr.ref">expr.ref</a>]</td> <td>TC1</td> <td>Non-static members, member selection and access checking</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="53"> <td><a href="https://cplusplus.github.io/CWG/issues/53.html">53</a></td> + <td>7.6.1.9</td> + <td>[<a href="https://wg21.link/expr.static.cast">expr.static.cast</a>]</td> <td>TC1</td> <td>Lvalue-to-rvalue conversion before certain static_casts</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="54"> <td><a href="https://cplusplus.github.io/CWG/issues/54.html">54</a></td> + <td>7.6.1.9</td> + <td>[<a href="https://wg21.link/expr.static.cast">expr.static.cast</a>]</td> <td>CD1</td> <td>Static_cast from private base to derived class</td> <td class="full" align="center">Clang 2.8</td> </tr> <tr id="55"> <td><a href="https://cplusplus.github.io/CWG/issues/55.html">55</a></td> + <td>7.6.6</td> + <td>[<a href="https://wg21.link/expr.add">expr.add</a>]</td> <td>NAD</td> <td>Adding/subtracting pointer and enumeration value</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr id="56"> <td><a href="https://cplusplus.github.io/CWG/issues/56.html">56</a></td> + <td>9.2.4</td> + <td>[<a href="https://wg21.link/dcl.typedef">dcl.typedef</a>]</td> <td>TC1</td> <td>Redeclaring typedefs within classes</td> <td class="full" align="center">Clang 2.7</td> </tr> <tr class="open" id="57"> <td><a href="https://cplusplus.github.io/CWG/issues/57.html">57</a></td> + <td>11.5</td> + <td>[<a href="https://wg21.link/class.union">class.union</a>]</td> <td>open</td> <td>Empty unions</td> <td align="center">Not resolved</td> </tr> <tr id="58"> <td><a href="https://cplusplus.github.io/CWG/issues/58.html">58</a></td> + <td>11.4.10</td> + <td>[<a href="https://wg21.link/class.bit">class.bit</a>]</td> <td>CD1</td> <td>Signedness of bit fields of enum type</td> <td class="full" align="center">Clang 3.1</td> </tr> <tr id="59"> <td><a href="https://cplusplus.github.io/CWG/issues/59.html">59</... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/165749 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
