diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index 462b335f7801cf0c8edf5eaef58cdefc18bd7297..62ccfc518d4568b87eacff73a9ff748803a98ed3 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -7304,11 +7304,11 @@ and <I>POD class</I></td> <td>Updating Annex C to C99</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="1249"> + <tr id="1249"> <td><a href="https://wg21.link/cwg1249">1249</a></td> - <td>drafting</td> + <td>DRWP</td> <td>Cv-qualification of nested lambda capture</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr id="1250"> <td><a href="https://wg21.link/cwg1250">1250</a></td> @@ -10006,9 +10006,9 @@ and <I>POD class</I></td> </tr> <tr class="open" id="1699"> <td><a href="https://wg21.link/cwg1699">1699</a></td> - <td>open</td> + <td>extension</td> <td>Does befriending a class befriend its friends?</td> - <td align="center">Not resolved</td> + <td align="center">Extension</td> </tr> <tr id="1700"> <td><a href="https://wg21.link/cwg1700">1700</a></td> @@ -10154,11 +10154,11 @@ and <I>POD class</I></td> <td>Multicharacter user-defined character literals</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="1724"> + <tr id="1724"> <td><a href="https://wg21.link/cwg1724">1724</a></td> - <td>drafting</td> + <td>DRWP</td> <td>Unclear rules for deduction failure</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr id="1725"> <td><a href="https://wg21.link/cwg1725">1725</a></td> @@ -10166,11 +10166,11 @@ and <I>POD class</I></td> <td>Trailing return type with nested function declarator</td> <td class="none" align="center">Unknown</td> </tr> - <tr class="open" id="1726"> + <tr id="1726"> <td><a href="https://wg21.link/cwg1726">1726</a></td> - <td>drafting</td> + <td>DR</td> <td>Declarator operators and conversion function</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr id="1727"> <td><a href="https://wg21.link/cwg1727">1727</a></td> @@ -10208,11 +10208,11 @@ and <I>POD class</I></td> <td>Defining types in <I>condition</I>s and range-based <TT>for</TT> statements</td> <td class="none" align="center">Unknown</td> </tr> - <tr class="open" id="1733"> + <tr id="1733"> <td><a href="https://wg21.link/cwg1733">1733</a></td> - <td>drafting</td> + <td>DRWP</td> <td>Return type and value for <TT>operator=</TT> with <I>ref-qualifier</I></td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr id="1734"> <td><a href="https://wg21.link/cwg1734">1734</a></td> @@ -14154,7 +14154,7 @@ and <I>POD class</I></td> <td><a href="https://wg21.link/cwg2390">2390</a></td> <td>CD5</td> <td>Is the argument of <TT>__has_cpp_attribute</TT> macro-expanded?</td> - <td class="none" align="center">Unknown</td> + <td class="full" align="center">Yes</td> </tr> <tr id="2391"> <td><a href="https://wg21.link/cwg2391">2391</a></td> @@ -14194,7 +14194,7 @@ and <I>POD class</I></td> </tr> <tr id="2397"> <td><a href="https://wg21.link/cwg2397">2397</a></td> - <td>DR</td> + <td>DRWP</td> <td><TT>auto</TT> specifier for pointers and references to arrays</td> <td class="none" align="center">Unknown</td> </tr> @@ -14250,7 +14250,7 @@ and <I>POD class</I></td> <td><a href="https://wg21.link/cwg2406">2406</a></td> <td>CD5</td> <td><TT>[[fallthrough]]</TT> attribute and iteration statements</td> - <td class="none" align="center">Unknown</td> + <td class="full" align="center">Yes</td> </tr> <tr class="open" id="2407"> <td><a href="https://wg21.link/cwg2407">2407</a></td> @@ -14500,7 +14500,7 @@ and <I>POD class</I></td> </tr> <tr id="2448"> <td><a href="https://wg21.link/cwg2448">2448</a></td> - <td>DR</td> + <td>DRWP</td> <td>Cv-qualification of arithmetic types and deprecation of volatile</td> <td class="none" align="center">Unknown</td> </tr> @@ -14540,11 +14540,11 @@ and <I>POD class</I></td> <td>Tail recursion and coroutine symmetric transfer</td> <td class="none" align="center">Unknown</td> </tr> - <tr class="open" id="2455"> + <tr id="2455"> <td><a href="https://wg21.link/cwg2455">2455</a></td> - <td>drafting</td> + <td>WP</td> <td>Concatenation of string literals vs translation phases 5 and 6</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr class="open" id="2456"> <td><a href="https://wg21.link/cwg2456">2456</a></td> @@ -14560,7 +14560,7 @@ and <I>POD class</I></td> </tr> <tr id="2458"> <td><a href="https://wg21.link/cwg2458">2458</a></td> - <td>DR</td> + <td>DRWP</td> <td>Value category of expressions denoting non-static member functions</td> <td class="none" align="center">Unknown</td> </tr> @@ -14602,13 +14602,13 @@ and <I>POD class</I></td> </tr> <tr id="2465"> <td><a href="https://wg21.link/cwg2465">2465</a></td> - <td>DR</td> + <td>DRWP</td> <td>Coroutine parameters passed to a promise constructor</td> <td class="none" align="center">Unknown</td> </tr> <tr id="2466"> <td><a href="https://wg21.link/cwg2466">2466</a></td> - <td>DR</td> + <td>DRWP</td> <td><TT>co_await</TT> should be a single evaluation</td> <td class="none" align="center">Unknown</td> </tr> @@ -14656,7 +14656,7 @@ and <I>POD class</I></td> </tr> <tr id="2474"> <td><a href="https://wg21.link/cwg2474">2474</a></td> - <td>DR</td> + <td>DRWP</td> <td>Cv-qualification and deletion</td> <td class="none" align="center">Unknown</td> </tr> @@ -14674,7 +14674,7 @@ and <I>POD class</I></td> </tr> <tr id="2477"> <td><a href="https://wg21.link/cwg2477">2477</a></td> - <td>DR</td> + <td>DRWP</td> <td>Defaulted vs deleted copy constructors/assignment operators</td> <td class="none" align="center">Unknown</td> </tr> @@ -14686,7 +14686,7 @@ and <I>POD class</I></td> </tr> <tr id="2479"> <td><a href="https://wg21.link/cwg2479">2479</a></td> - <td>DR</td> + <td>DRWP</td> <td>Missing specifications for <TT>consteval</TT> and <TT>constinit</TT></td> <td class="none" align="center">Unknown</td> </tr> @@ -14698,15 +14698,15 @@ and <I>POD class</I></td> </tr> <tr id="2481"> <td><a href="https://wg21.link/cwg2481">2481</a></td> - <td>DR</td> + <td>DRWP</td> <td>Cv-qualification of temporary to which a reference is bound</td> <td class="none" align="center">Unknown</td> </tr> - <tr class="open" id="2482"> + <tr id="2482"> <td><a href="https://wg21.link/cwg2482">2482</a></td> - <td>review</td> + <td>WP</td> <td><TT>bit_cast</TT> and indeterminate values</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr class="open" id="2483"> <td><a href="https://wg21.link/cwg2483">2483</a></td> @@ -14714,11 +14714,11 @@ and <I>POD class</I></td> <td>Language linkage of static member functions</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2484"> + <tr id="2484"> <td><a href="https://wg21.link/cwg2484">2484</a></td> - <td>open</td> + <td>DRWP</td> <td><TT>char8_t</TT> and <TT>char16_t</TT> in integral promotions</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr class="open" id="2485"> <td><a href="https://wg21.link/cwg2485">2485</a></td> @@ -14726,11 +14726,11 @@ and <I>POD class</I></td> <td>Bit-fields in integral promotions</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2486"> + <tr id="2486"> <td><a href="https://wg21.link/cwg2486">2486</a></td> - <td>drafting</td> + <td>DRWP</td> <td>Call to <TT>noexcept</TT> function via <TT>noexcept(false)</TT> pointer/lvalue</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr class="open" id="2487"> <td><a href="https://wg21.link/cwg2487">2487</a></td> @@ -14738,11 +14738,11 @@ and <I>POD class</I></td> <td>Type dependence of function-style cast to incomplete array type</td> <td align="center">Not resolved</td> </tr> - <tr id="2488"> + <tr class="open" id="2488"> <td><a href="https://wg21.link/cwg2488">2488</a></td> - <td>NAD</td> + <td>open</td> <td>Overloading virtual functions and functions with trailing <I>requires-clause</I>s</td> - <td class="none" align="center">Unknown</td> + <td align="center">Not resolved</td> </tr> <tr class="open" id="2489"> <td><a href="https://wg21.link/cwg2489">2489</a></td> @@ -14750,35 +14750,35 @@ and <I>POD class</I></td> <td>Storage provided by array of <TT>char</TT></td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2490"> + <tr id="2490"> <td><a href="https://wg21.link/cwg2490">2490</a></td> - <td>drafting</td> + <td>DRWP</td> <td>Restrictions on destruction in constant expressions</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr id="2491"> <td><a href="https://wg21.link/cwg2491">2491</a></td> - <td>ready</td> + <td>DRWP</td> <td>Export of typedef after its first declaration</td> <td class="none" align="center">Unknown</td> </tr> - <tr id="2492"> + <tr class="open" id="2492"> <td><a href="https://wg21.link/cwg2492">2492</a></td> - <td>NAD</td> + <td>drafting</td> <td>Comparing user-defined conversion sequences in list-initialization</td> - <td class="none" align="center">Unknown</td> + <td align="center">Not resolved</td> </tr> - <tr class="open" id="2493"> + <tr id="2493"> <td><a href="https://wg21.link/cwg2493">2493</a></td> - <td>open</td> + <td>dup</td> <td><TT>auto</TT> as a <I>conversion-type-id</I></td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> - <tr class="open" id="2494"> + <tr id="2494"> <td><a href="https://wg21.link/cwg2494">2494</a></td> - <td>drafting</td> + <td>DR</td> <td>Multiple definitions of non-odr-used entities</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr class="open" id="2495"> <td><a href="https://wg21.link/cwg2495">2495</a></td> @@ -14788,13 +14788,13 @@ and <I>POD class</I></td> </tr> <tr id="2496"> <td><a href="https://wg21.link/cwg2496">2496</a></td> - <td>ready</td> + <td>DRWP</td> <td><I>ref-qualifier</I>s and virtual overriding</td> <td class="none" align="center">Unknown</td> </tr> <tr class="open" id="2497"> <td><a href="https://wg21.link/cwg2497">2497</a></td> - <td>open</td> + <td>drafting</td> <td>Points of instantiation for constexpr function templates</td> <td align="center">Not resolved</td> </tr> @@ -14804,11 +14804,11 @@ and <I>POD class</I></td> <td>Partial specialization failure and the immediate context</td> <td align="center">Not resolved</td> </tr> - <tr class="open" id="2499"> + <tr id="2499"> <td><a href="https://wg21.link/cwg2499">2499</a></td> - <td>open</td> + <td>DR</td> <td>Inconsistency in definition of pointer-interconvertibility</td> - <td align="center">Not resolved</td> + <td class="none" align="center">Unknown</td> </tr> <tr class="open" id="2500"> <td><a href="https://wg21.link/cwg2500">2500</a></td> @@ -14822,7 +14822,180 @@ and <I>POD class</I></td> <td>Explicit instantiation and trailing <I>requires-clause</I>s</td> <td align="center">Not resolved</td> </tr> -</table> + <tr id="2502"> + <td><a href="https://wg21.link/cwg2502">2502</a></td> + <td>accepted</td> + <td>Unintended declaration conflicts in nested statement scopes</td> + <td class="none" align="center">Unknown</td> + </tr> + <tr class="open" id="2503"> + <td><a href="https://wg21.link/cwg2503">2503</a></td> + <td>drafting</td> + <td>Unclear relationship among name, qualified name, and unqualified name</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2504"> + <td><a href="https://wg21.link/cwg2504">2504</a></td> + <td>open</td> + <td>Inheriting constructors from virtual base classes</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2505"> + <td><a href="https://wg21.link/cwg2505">2505</a></td> + <td>drafting</td> + <td>Nested unnamed namespace of inline unnamed namespace</td> + <td align="center">Not resolved</td> + </tr> + <tr id="2506"> + <td><a href="https://wg21.link/cwg2506">2506</a></td> + <td>DR</td> + <td>Structured bindings and array cv-qualifiers</td> + <td class="none" align="center">Unknown</td> + </tr> + <tr class="open" id="2507"> + <td><a href="https://wg21.link/cwg2507">2507</a></td> + <td>review</td> + <td>Default arguments for <TT>operator[]</TT></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2508"> + <td><a href="https://wg21.link/cwg2508">2508</a></td> + <td>review</td> + <td>Restrictions on uses of template parameter names</td> + <td align="center">Not resolved</td> + </tr> + <tr id="2509"> + <td><a href="https://wg21.link/cwg2509">2509</a></td> + <td>DR</td> + <td><I>decl-specifier-seq</I> in <I>lambda-specifiers</I></td> + <td class="none" align="center">Unknown</td> + </tr> + <tr class="open" id="2510"> + <td><a href="https://wg21.link/cwg2510">2510</a></td> + <td>open</td> + <td><I>noexcept-specifier</I> of friend function vs class completeness</td> + <td align="center">Not resolved</td> + </tr> + <tr id="2511"> + <td><a href="https://wg21.link/cwg2511">2511</a></td> + <td>DR</td> + <td>cv-qualified bit-fields</td> + <td class="none" align="center">Unknown</td> + </tr> + <tr id="2512"> + <td><a href="https://wg21.link/cwg2512">2512</a></td> + <td>NAD</td> + <td><TT>typeid</TT> and incomplete class types</td> + <td class="none" align="center">Unknown</td> + </tr> + <tr class="open" id="2513"> + <td><a href="https://wg21.link/cwg2513">2513</a></td> + <td>open</td> + <td>Ambiguity with <I>requires-clause</I> and <I>operator-function-id</I></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2514"> + <td><a href="https://wg21.link/cwg2514">2514</a></td> + <td>open</td> + <td>Modifying const subobjects</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2515"> + <td><a href="https://wg21.link/cwg2515">2515</a></td> + <td>open</td> + <td>Result of a function call</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2516"> + <td><a href="https://wg21.link/cwg2516">2516</a></td> + <td>open</td> + <td>Locus of <I>enum-specifier</I> or <I>opaque-enum-declaration</I></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2517"> + <td><a href="https://wg21.link/cwg2517">2517</a></td> + <td>open</td> + <td>Useless restriction on use of parameter in <I>constraint-expression</I></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2518"> + <td><a href="https://wg21.link/cwg2518">2518</a></td> + <td>open</td> + <td>Conformance requirements and <TT>#error</TT>/<TT>#warning</TT></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2519"> + <td><a href="https://wg21.link/cwg2519">2519</a></td> + <td>open</td> + <td>Object representation of a bit-field</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2520"> + <td><a href="https://wg21.link/cwg2520">2520</a></td> + <td>open</td> + <td>Template signature and default template arguments</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2521"> + <td><a href="https://wg21.link/cwg2521">2521</a></td> + <td>open</td> + <td>User-defined literals and reserved identifiers</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2522"> + <td><a href="https://wg21.link/cwg2522">2522</a></td> + <td>open</td> + <td>Removing placemarker tokens and retention of whitespace</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2523"> + <td><a href="https://wg21.link/cwg2523">2523</a></td> + <td>open</td> + <td>Undefined behavior via omitted destructor call in constant expressions</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2524"> + <td><a href="https://wg21.link/cwg2524">2524</a></td> + <td>open</td> + <td>Distinguishing user-defined conversion sequences by <I>ref-qualifier</I></td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2525"> + <td><a href="https://wg21.link/cwg2525">2525</a></td> + <td>open</td> + <td>Incorrect definition of implicit conversion sequence</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2526"> + <td><a href="https://wg21.link/cwg2526">2526</a></td> + <td>open</td> + <td>Relational comparison of <TT>void*</TT> pointers</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2527"> + <td><a href="https://wg21.link/cwg2527">2527</a></td> + <td>open</td> + <td>Non-class potentially-overlapping objects</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2528"> + <td><a href="https://wg21.link/cwg2528">2528</a></td> + <td>open</td> + <td>Three-way comparison and the usual arithmetic conversions</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2529"> + <td><a href="https://wg21.link/cwg2529">2529</a></td> + <td>open</td> + <td>Constant destruction of constexpr references</td> + <td align="center">Not resolved</td> + </tr> + <tr class="open" id="2530"> + <td><a href="https://wg21.link/cwg2530">2530</a></td> + <td>open</td> + <td>Multiple definitions of enumerators</td> + <td align="center">Not resolved</td> + </tr></table> </div> </body> diff --git a/clang/www/make_cxx_dr_status b/clang/www/make_cxx_dr_status index d35165f90ed037dbfa7b6dc5fbd907a75ade961c..e98dfbab77402d31af35458342f094007efc8f69 100755 --- a/clang/www/make_cxx_dr_status +++ b/clang/www/make_cxx_dr_status @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 import sys, os, re index = 'cwg_index.html' @@ -10,7 +10,7 @@ if len(sys.argv) == 1: elif len(sys.argv) == 2: index = sys.argv[1] else: - print >>sys.stderr, 'Usage: make_drs [<path to cwg_index.html>]' + print('Usage: make_drs [<path to cwg_index.html>]', file=sys.stderr) sys.exit(1) class DR: @@ -38,17 +38,16 @@ for test_cpp in os.listdir(dr_test_dir): continue test_cpp = os.path.join(dr_test_dir, test_cpp) found_any = False; - for match in re.finditer(status_re, file(test_cpp, 'r').read()): + for match in re.finditer(status_re, open(test_cpp, 'r').read()): status_map[int(match.group(1))] = match.group(2) found_any = True if not found_any: - print >> sys.stderr, "warning:%s: no '// dr123: foo' comments in this file" % test_cpp + print("warning:%s: no '// dr123: foo' comments in this file" % test_cpp, file=sys.stderr) -drs = sorted((parse(dr) for dr in file(index, 'r').read().split('<TR>')[2:]), +drs = sorted((parse(dr) for dr in open(index, 'r').read().split('<TR>')[2:]), key = lambda dr: dr.issue) -out_file = file(output, 'w') - -print >> out_file, '''\ +out_file = open(output, 'w') +out_file.write('''\ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!-- This file is auto-generated by make_cxx_dr_status. Do not modify. --> @@ -90,7 +89,7 @@ print >> out_file, '''\ <th>Status</th> <th>Issue title</th> <th>Available in Clang?</th> - </tr>''' + </tr>''') latest_release = 13 @@ -143,7 +142,7 @@ def availability(issue): try: _, avail_style = availability(int(dup)) except: - print >>sys.stderr, "issue %s marked as sup %s" % (issue, dup) + print("issue %s marked as sup %s" % (issue, dup), file=sys.stderr) avail_style = ' class="none"' elif status.startswith('dup '): dup = int(status.split(' ', 1)[1]) @@ -174,20 +173,23 @@ for dr in drs: if not avail.startswith('Sup') and not avail.startswith('Dup'): count[avail] = count.get(avail, 0) + 1 - print >> out_file, '''\ + out_file.write(''' <tr%s id="%s"> <td><a href="https://wg21.link/cwg%s">%s</a></td> <td>%s</td> <td>%s</td> <td%s align="center">%s</td> - </tr>''' % (row_style, dr.issue, dr.issue, dr.issue, dr.status, dr.title, avail_style, avail) + </tr>''' % (row_style, dr.issue, dr.issue, dr.issue, dr.status, dr.title, avail_style, avail)) for status, num in sorted(count.items()): - print "%s: %s" % (status, num) + print("%s: %s" % (status, num)) -print >> out_file, '''\ +out_file.write('''\ </table> </div> </body> -</html>''' +</html> +''') +out_file.close() +