diff --git a/clang/test/CXX/drs/dr24xx.cpp b/clang/test/CXX/drs/dr24xx.cpp index b34ceb420788f..66e9cf5a677f8 100644 --- a/clang/test/CXX/drs/dr24xx.cpp +++ b/clang/test/CXX/drs/dr24xx.cpp @@ -45,7 +45,7 @@ void fallthrough(int n) { #endif } -namespace dr2450 { // dr2450: 18 drafting +namespace dr2450 { // dr2450: 18 review #if __cplusplus >= 202302L struct S {int a;}; template diff --git a/clang/test/CXX/drs/dr25xx.cpp b/clang/test/CXX/drs/dr25xx.cpp index 8c34b03c22d5b..32bbfc63d0df4 100644 --- a/clang/test/CXX/drs/dr25xx.cpp +++ b/clang/test/CXX/drs/dr25xx.cpp @@ -83,7 +83,7 @@ using ::dr2521::operator""_div; #if __cplusplus >= 202302L -namespace dr2553 { // dr2553: 18 +namespace dr2553 { // dr2553: 18 review struct B { virtual void f(this B&); // since-cxx23-error@-1 {{an explicit object parameter cannot appear in a virtual function}} @@ -143,7 +143,7 @@ void foo() { #endif -namespace dr2565 { // dr2565: 16 +namespace dr2565 { // dr2565: 16 open #if __cplusplus >= 202002L template concept C = requires (typename T::type x) { diff --git a/clang/test/CXX/drs/dr26xx.cpp b/clang/test/CXX/drs/dr26xx.cpp index 8a22dbeb98a3d..47eeddcc5bf26 100644 --- a/clang/test/CXX/drs/dr26xx.cpp +++ b/clang/test/CXX/drs/dr26xx.cpp @@ -24,7 +24,7 @@ using enum E; #endif } -namespace dr2628 { // dr2628: no open +namespace dr2628 { // dr2628: no // this was reverted for the 16.x release // due to regressions, see the issue for more details: // https://github.com/llvm/llvm-project/issues/60777 @@ -197,7 +197,7 @@ J j = { "ghi" }; #endif } -namespace dr2672 { // dr2672: 18 open +namespace dr2672 { // dr2672: 18 #if __cplusplus >= 202002L template void f(T) requires requires { []() { T::invalid; } (); }; diff --git a/clang/test/CXX/drs/dr27xx.cpp b/clang/test/CXX/drs/dr27xx.cpp index 4f7d0d6b44a83..dd3fd5a20163f 100644 --- a/clang/test/CXX/drs/dr27xx.cpp +++ b/clang/test/CXX/drs/dr27xx.cpp @@ -10,7 +10,7 @@ // expected-no-diagnostics #endif -namespace dr2789 { // dr2789: 18 open +namespace dr2789 { // dr2789: 18 #if __cplusplus >= 202302L template struct Base { @@ -42,7 +42,7 @@ void test() { #endif } -namespace dr2798 { // dr2798: 17 drafting +namespace dr2798 { // dr2798: 17 #if __cpp_static_assert >= 202306 struct string { constexpr string() { diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index d09cf616899ad..22eb7ac63c7ed 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -1055,7 +1055,7 @@

C++ defect report implementation status

170 - DR + DRWP Pointer-to-member conversions Unknown @@ -1426,11 +1426,11 @@

C++ defect report implementation status

Visibility of names after using-directives Yes - + 232 - drafting + NAD Is indirection through a null pointer undefined behavior? - Not resolved + Unknown 233 @@ -2661,7 +2661,7 @@

C++ defect report implementation status

437 CD1 Is type of class allowed in member function exception specification? - Superseded by 1308 + Superseded by 1308 438 @@ -2753,11 +2753,11 @@

C++ defect report implementation status

Wording nit on description of this Yes - + 453 - drafting + tentatively ready References may only bind to “valid” objects - Not resolved + Unknown 454 @@ -2789,11 +2789,11 @@

C++ defect report implementation status

Hiding of member template parameters by other members Clang 11 - + 459 - open + NAD Hiding of template parameters by base class members - Not resolved + Unknown 460 @@ -5967,7 +5967,7 @@

C++ defect report implementation status

1027 - drafting + review Type consistency and reallocation of scalar types Not resolved @@ -6033,7 +6033,7 @@

C++ defect report implementation status

1038 - tentatively ready + DR Overload resolution of &x.static_func Unknown @@ -6339,7 +6339,7 @@

C++ defect report implementation status

1089 - drafting + open Template parameters in member selections Not resolved @@ -7923,7 +7923,7 @@

C++ defect report implementation status

1353 - DR + DRWP Array and variant members and deleted special member functions Unknown @@ -9657,7 +9657,7 @@

C++ defect report implementation status

1642 - DR + DRWP Missing requirements for prvalue operands Unknown @@ -9993,7 +9993,7 @@

C++ defect report implementation status

1698 - ready + DR Files ending in \ Unknown @@ -11527,11 +11527,11 @@

C++ defect report implementation status

Data races and common initial sequence Not resolved - + 1954 - open + tentatively ready typeid null dereference check in subexpressions - Not resolved + Unknown 1955 @@ -11643,7 +11643,7 @@

C++ defect report implementation status

1973 - DR + DRWP Which parameter-declaration-clause in a lambda-expression? Unknown @@ -11911,11 +11911,11 @@

C++ defect report implementation status

Flowing off end is not equivalent to no-expression return Unknown - + 2018 - drafting + dup Qualification conversion vs reference binding - Not resolved + Unknown 2019 @@ -12127,11 +12127,11 @@

C++ defect report implementation status

auto in non-generic lambdas Unknown - + 2054 - review + DR Missing description of class SFINAE - Not resolved + Unknown 2055 @@ -12417,7 +12417,7 @@

C++ defect report implementation status

2102 - tentatively ready + DR Constructor checking in new-expression Unknown @@ -13315,11 +13315,11 @@

C++ defect report implementation status

Unreachable enumeration list-initialization Unknown - + 2252 - review + DR Enumeration list-initialization from the same type - Not resolved + Unknown 2253 @@ -14505,7 +14505,7 @@

C++ defect report implementation status

2450 - drafting + review braced-init-list as a template-argument Clang 18 @@ -14715,7 +14715,7 @@

C++ defect report implementation status

2485 - DR + DRWP Bit-fields in integral promotions Unknown @@ -14827,11 +14827,11 @@

C++ defect report implementation status

Unclear relationship among name, qualified name, and unqualified name Not resolved - + 2504 - review + DR Inheriting constructors from virtual base classes - Not resolved + Unknown 2505 @@ -14889,7 +14889,7 @@

C++ defect report implementation status

2514 - review + open Modifying const subobjects Not resolved @@ -14919,7 +14919,7 @@

C++ defect report implementation status

2519 - DR + DRWP Object representation of a bit-field Unknown @@ -14989,11 +14989,11 @@

C++ defect report implementation status

Multiple definitions of enumerators Unknown - + 2531 - review + DR Static data members redeclared as constexpr - Not resolved + Unknown 2532 @@ -15057,7 +15057,7 @@

C++ defect report implementation status

2542 - DR + DRWP Is a closure type a structural type? Unknown @@ -15079,23 +15079,23 @@

C++ defect report implementation status

Transparently replacing objects in constant expressions Not resolved - + 2546 - review + tentatively ready Defaulted secondary comparison operators defined as deleted - Not resolved + Unknown - + 2547 - review + tentatively ready Defaulted comparison operator function for non-classes - Not resolved + Unknown - + 2548 - review + NAD Array prvalues and additive operators - Not resolved + Unknown 2549 @@ -15105,7 +15105,7 @@

C++ defect report implementation status

2550 - DR + DRWP Type "reference to cv void" outside of a declarator Unknown @@ -15117,13 +15117,13 @@

C++ defect report implementation status

2552 - DR + DRWP Constant evaluation of non-defining variable declarations Unknown - + 2553 - ready + review Restrictions on explicit object member functions Clang 18 @@ -15141,7 +15141,7 @@

C++ defect report implementation status

2556 - tentatively ready + DR Unusable promise::return_void Unknown @@ -15163,11 +15163,11 @@

C++ defect report implementation status

Defaulted consteval functions Not resolved - + 2560 - open + tentatively ready Parameter type determination in a requirement-parameter-list - Not resolved + Unknown 2561 @@ -15193,9 +15193,9 @@

C++ defect report implementation status

Conversion to function pointer with an explicit object parameter Not resolved - + 2565 - tentatively ready + open Invalid types in the parameter-declaration-clause of a requires-expression Clang 16 @@ -15211,11 +15211,11 @@

C++ defect report implementation status

Operator lookup ambiguity Unknown - + 2568 - review + tentatively ready Access checking during synthesis of defaulted comparison operator - Not resolved + Unknown 2569 @@ -15225,7 +15225,7 @@

C++ defect report implementation status

2570 - tentatively ready + DR Clarify constexpr for defaulted functions Unknown @@ -15241,17 +15241,17 @@

C++ defect report implementation status

Address of overloaded function with no target Not resolved - + 2573 - open + DRWP Undefined behavior when splicing results in a universal-character-name - Not resolved + Unknown - + 2574 - open + DRWP Undefined behavior when lexing unmatched quotes - Not resolved + Unknown 2575 @@ -15351,7 +15351,7 @@

C++ defect report implementation status

2591 - tentatively ready + DR Implicit change of active union member for anonymous union in union Unknown @@ -15375,7 +15375,7 @@

C++ defect report implementation status

2595 - tentatively ready + DR "More constrained" for eligible special member functions Unknown @@ -15405,7 +15405,7 @@

C++ defect report implementation status

2600 - tentatively ready + DR Type dependency of placeholder types Unknown @@ -15571,9 +15571,9 @@

C++ defect report implementation status

Bit-fields and narrowing conversions Unknown - + 2628 - open + DR Implicit deduction guides should propagate constraints No @@ -15597,7 +15597,7 @@

C++ defect report implementation status

2632 - open + review 'user-declared' is not defined Not resolved @@ -15607,11 +15607,11 @@

C++ defect report implementation status

typeid of constexpr-unknown dynamic type Not resolved - + 2634 - open + tentatively ready Avoid circularity in specification of scope for friend class declarations - Not resolved + Unknown 2635 @@ -15625,17 +15625,17 @@

C++ defect report implementation status

Update Annex E based on Unicode 15.0 UAX #31 N/A - + 2637 - open + tentatively ready Injected-class-name as a simple-template-id - Not resolved + Unknown - + 2638 - open + tentatively ready Improve the example for initializing by initializer list - Not resolved + Unknown 2639 @@ -15733,23 +15733,23 @@

C++ defect report implementation status

Un-deprecation of compound volatile assignments Clang 16 - + 2655 - open + NAD Instantiation of default arguments in lambda-expressions - Not resolved + Unknown 2656 - open + drafting Converting consteval lambda to function pointer in non-immediate context Not resolved - + 2657 - open + tentatively ready Cv-qualification adjustment when binding reference to temporary - Not resolved + Unknown 2658 @@ -15783,7 +15783,7 @@

C++ defect report implementation status

2663 - DR + DRWP Example for member redeclarations with using-declarations Unknown @@ -15811,11 +15811,11 @@

C++ defect report implementation status

Named module imports do not import macros Unknown - + 2668 - open + tentatively ready co_await in a lambda-expression - Not resolved + Unknown 2669 @@ -15835,9 +15835,9 @@

C++ defect report implementation status

friend named by a template-id Not resolved - + 2672 - open + DR Lambda body SFINAE is still required, contrary to intent and note Clang 18 @@ -15903,7 +15903,7 @@

C++ defect report implementation status

2683 - DR + DRWP Default arguments for member functions of templated nested classes Unknown @@ -15937,11 +15937,11 @@

C++ defect report implementation status

Calling explicit object member functions Not resolved - + 2689 - review + tentatively ready Are cv-qualified std::nullptr_t fundamental types? - Not resolved + Unknown 2690 @@ -15987,19 +15987,19 @@

C++ defect report implementation status

2697 - DR + DRWP Deduction guides using abbreviated function syntax Unknown 2698 - DR + DRWP Using extended integer types with z suffix Unknown 2699 - DR + DRWP Inconsistency of throw-expression specification Unknown @@ -16045,15 +16045,15 @@

C++ defect report implementation status

Repeated structured binding declarations Not resolved - + 2707 - open + tentatively ready Deduction guides cannot have a trailing requires-clause - Not resolved + Unknown 2708 - DR + DRWP Parenthesized initialization of arrays Unknown @@ -16065,25 +16065,25 @@

C++ defect report implementation status

2710 - DR + DRWP Loops in constant expressions Unknown 2711 - DR + DRWP Source for copy-initializing the exception object Unknown 2712 - DR + DRWP Simplify restrictions on built-in assignment operator candidates Unknown 2713 - DR + DRWP Initialization of reference-to-aggregate from designated initializer list Unknown @@ -16095,67 +16095,67 @@

C++ defect report implementation status

2715 - DR + DRWP "calling function" for parameter initialization may not exist Unknown 2716 - DR + DRWP Rule about self-or-base conversion is normatively redundant Unknown 2717 - DR + DRWP Pack expansion for alignment-specifier Unknown 2718 - DR + DRWP Type completeness for derived-to-base conversions Unknown 2719 - DR + DRWP Creating objects in misaligned storage Unknown 2720 - DR + DRWP Template validity rules for templated entities and alias templates Unknown 2721 - DR + DRWP When exactly is storage reused? Unknown 2722 - DR + DRWP Temporary materialization conversion for noexcept operator Unknown 2723 - DR + DRWP Range of representable values for floating-point types Unknown 2724 - DR + DRWP Clarify rounding for arithmetic right shift Unknown 2725 - tentatively ready + DR Overload resolution for non-call of class member access Unknown @@ -16179,7 +16179,7 @@

C++ defect report implementation status

2729 - DR + DRWP Meaning of new-type-id Unknown @@ -16197,15 +16197,15 @@

C++ defect report implementation status

2732 - DR + DRWP Can importable headers react to preprocessor state from point of import? Unknown - + 2733 - review + DR Applying [[maybe_unused]] to a label - Not resolved + Unknown 2734 @@ -16287,33 +16287,33 @@

C++ defect report implementation status

2747 - ready + DR Cannot depend on an already-deleted splice Unknown - + 2748 - open + tentatively ready Accessing static data members via null pointer - Not resolved + Unknown 2749 - tentatively ready + DR Treatment of "pointer to void" for relational comparisons Unknown 2750 - DR + DRWP construct_at without constructor call Unknown - + 2751 - open + NAD Order of destruction for parameters for operator functions - Not resolved + Unknown 2752 @@ -16323,75 +16323,75 @@

C++ defect report implementation status

2753 - tentatively ready + DR Storage reuse for string literal objects and backing arrays Unknown 2754 - ready + DR Using *this in explicit object member functions that are coroutines Unknown 2755 - ready + DR Incorrect wording applied by P2738R1 Unknown - + 2756 - tentatively ready + review Completion of initialization by delegating constructor - Unknown + Not resolved 2757 - open + review Deleting or deallocating storage of an object during its construction Not resolved - + 2758 - open + DR What is "access and ambiguity control"? - Not resolved + Unknown - + 2759 - open + DR [[no_unique_address] and common initial sequence - Not resolved + Unknown - + 2760 - open + DR Defaulted constructor that is an immediate function - Not resolved + Unknown - + 2761 - open + DR Implicitly invoking the deleted destructor of an anonymous union member - Not resolved + Unknown - + 2762 - open + DR Type of implicit object parameter - Not resolved + Unknown - + 2763 - review + DR Ignorability of [[noreturn]] during constant evaluation - Not resolved + Unknown - + 2764 - open + DR Use of placeholders affecting name mangling - Not resolved + Unknown 2765 @@ -16411,11 +16411,11 @@

C++ defect report implementation status

Non-defining declarations of anonymous unions Not resolved - + 2768 - open - Assignment to scalar with a braced-init-list - Not resolved + DR + Assignment to enumeration variable with a braced-init-list + Unknown 2769 @@ -16435,11 +16435,11 @@

C++ defect report implementation status

Transformation for unqualified-ids in address operator Not resolved - + 2772 - open + DR Missing Annex C entry for linkage effects of linkage-specification - Not resolved + Unknown 2773 @@ -16453,11 +16453,11 @@

C++ defect report implementation status

Value-dependence of requires-expressions Not resolved - + 2775 - open + tentatively ready Unclear argument type for copy of exception object - Not resolved + Unknown 2776 @@ -16483,10 +16483,376 @@

C++ defect report implementation status

Restrictions on the ordinary literal encoding Not resolved - + 2780 - open + DR reinterpret_cast to reference to function types + Unknown + + + 2781 + open + Unclear recursion in the one-definition rule + Not resolved + + + 2782 + open + Treatment of closure types in the one-definition rule + Not resolved + + + 2783 + DR + Handling of deduction guides in global-module-fragment + Unknown + + + 2784 + open + Unclear definition of member-designator for offsetof + Not resolved + + + 2785 + DR + Type-dependence of requires-expression + Unknown + + + 2786 + open + Comparing pointers to complete objects + Not resolved + + + 2787 + open + Kind of explicit object copy/move assignment function + Not resolved + + + 2788 + open + Correspondence and redeclarations + Not resolved + + + 2789 + DR + Overload resolution with implicit and explicit object member functions + Clang 18 + + + 2790 + open + Aggregate initialization and user-defined conversion sequence + Not resolved + + + 2791 + DR + Unclear phrasing about "returning to the caller" + Unknown + + + 2792 + DR + Clean up specification of noexcept operator + Unknown + + + 2793 + DR + Block-scope declaration conflicting with parameter name + Unknown + + + 2794 + open + Uniqueness of lambdas in alias templates + Not resolved + + + 2795 + DR + Overlapping empty subobjects with different cv-qualification + Unknown + + + 2796 + DR + Function pointer conversions for relational operators + Unknown + + + 2797 + open + Meaning of "corresponds" for rewritten operator candidates + Not resolved + + + 2798 + DR + Manifestly constant evaluation of the static_assert message + Clang 17 + + + 2799 + drafting + Inheriting default constructors + Not resolved + + + 2800 + review + Instantiating constexpr variables for potential constant evaluation + Not resolved + + + 2801 + DR + Reference binding with reference-related types + Unknown + + + 2802 + open + Constrained auto and redeclaration with non-abbreviated syntax + Not resolved + + + 2803 + tentatively ready + Overload resolution for reference binding of similar types + Unknown + + + 2804 + open + Lookup for determining rewrite targets + Not resolved + + + 2805 + open + Underspecified selection of deallocation function + Not resolved + + + 2806 + DR + Make a type-requirement a type-only context + Unknown + + + 2807 + DR + Destructors declared consteval + Unknown + + + 2808 + review + Explicit specialization of defaulted special member function + Not resolved + + + 2809 + tentatively ready + An implicit definition does not redeclare a function + Unknown + + + 2810 + tentatively ready + Requiring the absence of diagnostics for templates + Unknown + + + 2811 + tentatively ready + Clarify "use" of main + Unknown + + + 2812 + open + Allocation with explicit alignment + Not resolved + + + 2813 + review + Class member access with prvalues + Not resolved + + + 2814 + review + Alignment requirement of incomplete class type + Not resolved + + + 2815 + open + Overload resolution for references/pointers to noexcept functions + Not resolved + + + 2816 + review + Unclear phrasing "may assume ... eventually" + Not resolved + + + 2817 + open + sizeof(abstract class) is underspecified + Not resolved + + + 2818 + review + Use of predefined reserved identifiers + Not resolved + + + 2819 + review + Cast from null pointer value in a constant expression + Not resolved + + + 2820 + open + Value-initialization and default constructors + Not resolved + + + 2821 + open + Lifetime, zero-initialization, and dynamic initialization + Not resolved + + + 2822 + tentatively ready + Side-effect-free pointer zap + Unknown + + + 2823 + DR + Implicit undefined behavior when dereferencing pointers + Unknown + + + 2824 + tentatively ready + Copy-initialization of arrays + Unknown + + + 2825 + tentatively ready + Range-based for statement using a braced-init-list + Unknown + + + 2826 + tentatively ready + Missing definition of "temporary expression" + Unknown + + + 2827 + review + Representation of unsigned integral types + Not resolved + + + 2828 + review + Ambiguous interpretation of C-style cast + Not resolved + + + 2829 + open + Redundant case in restricting user-defined conversion sequences + Not resolved + + + 2830 + open + Top-level cv-qualification should be ignored for list-initialization + Not resolved + + + 2831 + open + Non-templated function definitions and requires-clauses + Not resolved + + + 2832 + open + Invented temporary variables and temporary objects + Not resolved + + + 2833 + review + Evaluation of odr-use + Not resolved + + + 2834 + open + Partial ordering and explicit object parameters + Not resolved + + + 2835 + open + Name-independent declarations + Not resolved + + + 2836 + open + Conversion rank of long double and extended floating-point types + Not resolved + + + 2837 + open + Instantiating and inheriting by-value copy constructors + Not resolved + + + 2838 + open + Declaration conflicts in lambda-expressions + Not resolved + + + 2839 + open + Explicit destruction of base classes + Not resolved + + + 2840 + open + Missing requirements for fundamental alignments + Not resolved + + + 2841 + open + When do const objects start being const? Not resolved