Author: Vlad Serebrennikov Date: 2023-12-04T15:15:40+03:00 New Revision: f9afe4049a8829aa8dad64b0eb7dccc8dd4a8bbe
URL: https://github.com/llvm/llvm-project/commit/f9afe4049a8829aa8dad64b0eb7dccc8dd4a8bbe DIFF: https://github.com/llvm/llvm-project/commit/f9afe4049a8829aa8dad64b0eb7dccc8dd4a8bbe.diff LOG: [clang][NFC] Fill in historical data on when C++ DRs 400-499 were fixed Added: Modified: clang/test/CXX/drs/dr4xx.cpp clang/www/cxx_dr_status.html Removed: ################################################################################ diff --git a/clang/test/CXX/drs/dr4xx.cpp b/clang/test/CXX/drs/dr4xx.cpp index d8bdf49d0b2dd..acb3cbfa52e7f 100644 --- a/clang/test/CXX/drs/dr4xx.cpp +++ b/clang/test/CXX/drs/dr4xx.cpp @@ -18,7 +18,7 @@ namespace dr400 { // dr400: yes struct E : A, B { struct a b; }; // expected-error {{found in multiple base classes}} } -namespace dr401 { // dr401: yes +namespace dr401 { // dr401: 2.8 template<class T, class U = typename T::type> class A : public T {}; // expected-error {{protected}} expected-error 2{{private}} class B { @@ -114,7 +114,7 @@ namespace dr405 { // dr405: yes void testE(E::S es) { f(es); } // expected-error {{undeclared identifier}} } -namespace dr406 { // dr406: yes +namespace dr406 { // dr406: 2.9 typedef struct { static int n; // expected-error {{static data member 'n' not allowed in anonymous struct}} } A; @@ -360,7 +360,7 @@ void use() { } // namespace example3 } // namespace dr418 -namespace dr420 { // dr420: yes +namespace dr420 { // dr420: 9 template<typename T> struct ptr { T *operator->() const; T &operator*() const; @@ -496,7 +496,7 @@ namespace dr428 { // dr428: yes } } -namespace dr429 { // dr429: yes c++11 +namespace dr429 { // dr429: 2.8 c++11 // FIXME: This rule is obviously intended to apply to C++98 as well. struct A { static void *operator new(size_t, size_t); @@ -552,7 +552,7 @@ namespace dr431 { // dr431: yes } } -namespace dr432 { // dr432: yes +namespace dr432 { // dr432: 3.0 template<typename T> struct A {}; template<typename T> struct B : A<B> {}; // expected-error {{requires template arguments}} expected-note {{declared}} template<typename T> struct C : A<C<T> > {}; @@ -636,14 +636,14 @@ namespace dr444 { // dr444: yes } } -namespace dr445 { // dr445: yes +namespace dr445 { // dr445: 3.2 class A { void f(); }; // expected-note {{private}} struct B { friend void A::f(); // expected-error {{private}} }; } -namespace dr446 { // dr446: yes +namespace dr446 { // dr446: 2.8 struct C; struct A { A(); @@ -695,7 +695,7 @@ namespace dr447 { // dr447: yes } } -namespace dr448 { // dr448: yes +namespace dr448 { // dr448: 2.8 template<typename T = int> void f(int); // expected-error 0-1{{extension}} expected-note {{no known conversion}} template<typename T> void g(T t) { f<T>(t); // expected-error {{neither visible in the template definition nor found by argument-dependent lookup}} @@ -908,7 +908,7 @@ namespace dr470 { // dr470: yes template struct C<char>; } -namespace dr471 { // dr471: yes +namespace dr471 { // dr471: 2.8 struct A { int n; }; struct B : private virtual A {}; struct C : protected virtual A {}; @@ -924,7 +924,7 @@ namespace dr471 { // dr471: yes struct H : B, G { int f() { return n; } }; // expected-error {{private}} } -namespace dr474 { // dr474: yes +namespace dr474 { // dr474: 3.4 namespace N { struct S { void f(); @@ -960,7 +960,7 @@ namespace dr478 { // dr478: yes void f(A a[10]); // expected-error {{array of abstract class type}} } -namespace dr479 { // dr479: yes +namespace dr479 { // dr479: 2.8 struct S { S(); private: @@ -1016,7 +1016,7 @@ namespace dr480 { // dr480: yes D &k = static_cast<D&>(j); // expected-error {{virtual base}} } -namespace dr481 { // dr481: yes +namespace dr481 { // dr481: 2.8 template<class T, T U> class A { T *x; }; T *x; // expected-error {{unknown type}} @@ -1194,7 +1194,7 @@ namespace dr488 { // dr488: yes c++11 // dr489: na -namespace dr490 { // dr490: yes +namespace dr490 { // dr490: 2.8 template<typename T> struct X {}; struct A { diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index 2b757df8f3df9..4d918224ded46 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -2445,7 +2445,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/401.html">401</a></td> <td>CD1</td> <td>When is access for template parameter default arguments checked?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr class="open" id="402"> <td><a href="https://cplusplus.github.io/CWG/issues/402.html">402</a></td> @@ -2475,7 +2475,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/406.html">406</a></td> <td>CD1</td> <td>Static data member in class with name for linkage purposes</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="407"> <td><a href="https://cplusplus.github.io/CWG/issues/407.html">407</a></td> @@ -2559,7 +2559,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/420.html">420</a></td> <td>CD1</td> <td>postfixexpression->scalar_type_dtor() inconsistent</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 9</td> </tr> <tr id="421"> <td><a href="https://cplusplus.github.io/CWG/issues/421.html">421</a></td> @@ -2613,7 +2613,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/429.html">429</a></td> <td>CD1</td> <td>Matching deallocation function chosen based on syntax or signature?</td> - <td class="full" align="center">Yes (C++11 onwards)</td> + <td class="full" align="center">Clang 2.8 (C++11 onwards)</td> </tr> <tr id="430"> <td><a href="https://cplusplus.github.io/CWG/issues/430.html">430</a></td> @@ -2631,7 +2631,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/432.html">432</a></td> <td>CD1</td> <td>Is injected class name visible in base class specifier list?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.0</td> </tr> <tr id="433"> <td><a href="https://cplusplus.github.io/CWG/issues/433.html">433</a></td> @@ -2709,13 +2709,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/445.html">445</a></td> <td>NAD</td> <td>Wording issue on friend declarations</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.2</td> </tr> <tr id="446"> <td><a href="https://cplusplus.github.io/CWG/issues/446.html">446</a></td> <td>CD1</td> <td>Does an lvalue-to-rvalue conversion on the "?" operator produce a temporary?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="447"> <td><a href="https://cplusplus.github.io/CWG/issues/447.html">447</a></td> @@ -2727,7 +2727,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/448.html">448</a></td> <td>C++11</td> <td>Set of template functions in call with dependent explicit argument</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="449"> <td><a href="https://cplusplus.github.io/CWG/issues/449.html">449</a></td> @@ -2865,7 +2865,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/471.html">471</a></td> <td>NAD</td> <td>Conflicting inherited access specifications</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr class="open" id="472"> <td><a href="https://cplusplus.github.io/CWG/issues/472.html">472</a></td> @@ -2883,7 +2883,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/474.html">474</a></td> <td>CD1</td> <td>Block-scope <TT>extern</TT> declarations in namespace members</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.4</td> </tr> <tr id="475"> <td><a href="https://cplusplus.github.io/CWG/issues/475.html">475</a></td> @@ -2913,7 +2913,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/479.html">479</a></td> <td>CD1</td> <td>Copy elision in exception handling</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="480"> <td><a href="https://cplusplus.github.io/CWG/issues/480.html">480</a></td> @@ -2925,7 +2925,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/481.html">481</a></td> <td>CD2</td> <td>Scope of template parameters</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="482"> <td><a href="https://cplusplus.github.io/CWG/issues/482.html">482</a></td> @@ -2979,7 +2979,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/490.html">490</a></td> <td>CD2</td> <td>Name lookup in friend declarations</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="491"> <td><a href="https://cplusplus.github.io/CWG/issues/491.html">491</a></td> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits