Index: clang/www/cxx_dr_status.html =================================================================== --- clang/www/cxx_dr_status.html +++ clang/www/cxx_dr_status.html @@ -7304,11 +7304,11 @@ Updating Annex C to C99 Not resolved - + 1249 - drafting + DRWP Cv-qualification of nested lambda capture - Not resolved + Unknown 1250 @@ -10006,9 +10006,9 @@ 1699 - open + extension Does befriending a class befriend its friends? - Not resolved + Extension 1700 @@ -10154,11 +10154,11 @@ Multicharacter user-defined character literals Not resolved - + 1724 - drafting + DRWP Unclear rules for deduction failure - Not resolved + Unknown 1725 @@ -10166,11 +10166,11 @@ Trailing return type with nested function declarator Unknown - + 1726 - drafting + DR Declarator operators and conversion function - Not resolved + Unknown 1727 @@ -10208,11 +10208,11 @@ Defining types in conditions and range-based for statements Unknown - + 1733 - drafting + DRWP Return type and value for operator= with ref-qualifier - Not resolved + Unknown 1734 @@ -14154,7 +14154,7 @@ 2390 CD5 Is the argument of __has_cpp_attribute macro-expanded? - Unknown + Yes 2391 @@ -14194,7 +14194,7 @@ 2397 - DR + DRWP auto specifier for pointers and references to arrays Unknown @@ -14250,7 +14250,7 @@ 2406 CD5 [[fallthrough]] attribute and iteration statements - Unknown + Yes 2407 @@ -14500,7 +14500,7 @@ 2448 - DR + DRWP Cv-qualification of arithmetic types and deprecation of volatile Unknown @@ -14540,11 +14540,11 @@ Tail recursion and coroutine symmetric transfer Unknown - + 2455 - drafting + WP Concatenation of string literals vs translation phases 5 and 6 - Not resolved + Unknown 2456 @@ -14560,7 +14560,7 @@ 2458 - DR + DRWP Value category of expressions denoting non-static member functions Unknown @@ -14602,13 +14602,13 @@ 2465 - DR + DRWP Coroutine parameters passed to a promise constructor Unknown 2466 - DR + DRWP co_await should be a single evaluation Unknown @@ -14656,7 +14656,7 @@ 2474 - DR + DRWP Cv-qualification and deletion Unknown @@ -14674,7 +14674,7 @@ 2477 - DR + DRWP Defaulted vs deleted copy constructors/assignment operators Unknown @@ -14686,7 +14686,7 @@ 2479 - DR + DRWP Missing specifications for consteval and constinit Unknown @@ -14698,15 +14698,15 @@ 2481 - DR + DRWP Cv-qualification of temporary to which a reference is bound Unknown - + 2482 - review + WP bit_cast and indeterminate values - Not resolved + Unknown 2483 @@ -14714,11 +14714,11 @@ Language linkage of static member functions Not resolved - + 2484 - open + DRWP char8_t and char16_t in integral promotions - Not resolved + Unknown 2485 @@ -14726,11 +14726,11 @@ Bit-fields in integral promotions Not resolved - + 2486 - drafting + DRWP Call to noexcept function via noexcept(false) pointer/lvalue - Not resolved + Unknown 2487 @@ -14738,11 +14738,11 @@ Type dependence of function-style cast to incomplete array type Not resolved - + 2488 - NAD + open Overloading virtual functions and functions with trailing requires-clauses - Unknown + Not resolved 2489 @@ -14750,35 +14750,35 @@ Storage provided by array of char Not resolved - + 2490 - drafting + DRWP Restrictions on destruction in constant expressions - Not resolved + Unknown 2491 - ready + DRWP Export of typedef after its first declaration Unknown - + 2492 - NAD + drafting Comparing user-defined conversion sequences in list-initialization - Unknown + Not resolved - + 2493 - open + dup auto as a conversion-type-id - Not resolved + Unknown - + 2494 - drafting + DR Multiple definitions of non-odr-used entities - Not resolved + Unknown 2495 @@ -14788,13 +14788,13 @@ 2496 - ready + DRWP ref-qualifiers and virtual overriding Unknown 2497 - open + drafting Points of instantiation for constexpr function templates Not resolved @@ -14804,11 +14804,11 @@ Partial specialization failure and the immediate context Not resolved - + 2499 - open + DR Inconsistency in definition of pointer-interconvertibility - Not resolved + Unknown 2500 @@ -14822,8 +14822,181 @@ Explicit instantiation and trailing requires-clauses Not resolved - + + 2502 + accepted + Unintended declaration conflicts in nested statement scopes + Unknown + + + 2503 + drafting + Unclear relationship among name, qualified name, and unqualified name + Not resolved + + + 2504 + open + Inheriting constructors from virtual base classes + Not resolved + + + 2505 + drafting + Nested unnamed namespace of inline unnamed namespace + Not resolved + + + 2506 + DR + Structured bindings and array cv-qualifiers + Unknown + + + 2507 + review + Default arguments for operator[] + Not resolved + + + 2508 + review + Restrictions on uses of template parameter names + Not resolved + + + 2509 + DR + decl-specifier-seq in lambda-specifiers + Unknown + + + 2510 + open + noexcept-specifier of friend function vs class completeness + Not resolved + + + 2511 + DR + cv-qualified bit-fields + Unknown + + + 2512 + NAD + typeid and incomplete class types + Unknown + + + 2513 + open + Ambiguity with requires-clause and operator-function-id + Not resolved + + + 2514 + open + Modifying const subobjects + Not resolved + + + 2515 + open + Result of a function call + Not resolved + + + 2516 + open + Locus of enum-specifier or opaque-enum-declaration + Not resolved + + + 2517 + open + Useless restriction on use of parameter in constraint-expression + Not resolved + + + 2518 + open + Conformance requirements and #error/#warning + Not resolved + + + 2519 + open + Object representation of a bit-field + Not resolved + + + 2520 + open + Template signature and default template arguments + Not resolved + + + 2521 + open + User-defined literals and reserved identifiers + Not resolved + + + 2522 + open + Removing placemarker tokens and retention of whitespace + Not resolved + + + 2523 + open + Undefined behavior via omitted destructor call in constant expressions + Not resolved + + + 2524 + open + Distinguishing user-defined conversion sequences by ref-qualifier + Not resolved + + + 2525 + open + Incorrect definition of implicit conversion sequence + Not resolved + + + 2526 + open + Relational comparison of void* pointers + Not resolved + + + 2527 + open + Non-class potentially-overlapping objects + Not resolved + + + 2528 + open + Three-way comparison and the usual arithmetic conversions + Not resolved + + + 2529 + open + Constant destruction of constexpr references + Not resolved + + + 2530 + open + Multiple definitions of enumerators + Not resolved + - + \ No newline at end of file Index: clang/www/make_cxx_dr_status =================================================================== --- clang/www/make_cxx_dr_status +++ 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 @@ elif len(sys.argv) == 2: index = sys.argv[1] else: - print >>sys.stderr, 'Usage: make_drs []' + print('Usage: make_drs []', file=sys.stderr) sys.exit(1) class DR: @@ -38,17 +38,16 @@ 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('')[2:]), +drs = sorted((parse(dr) for dr in open(index, 'r').read().split('')[2:]), key = lambda dr: dr.issue) -out_file = file(output, 'w') - -print >> out_file, '''\ +out_file = open(output, 'w') +out_file.write('''\ @@ -90,7 +89,7 @@ Status Issue title Available in Clang? - ''' + ''') latest_release = 13 @@ -143,7 +142,7 @@ 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,21 @@ if not avail.startswith('Sup') and not avail.startswith('Dup'): count[avail] = count.get(avail, 0) + 1 - print >> out_file, '''\ + out_file.write(''' %s %s %s %s - ''' % (row_style, dr.issue, dr.issue, dr.issue, dr.status, dr.title, avail_style, avail) + ''' % (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('''\ -''' +''') +out_file.close()