Author: Vlad Serebrennikov Date: 2023-11-30T02:25:15+03:00 New Revision: bf2e05c7fbc739cd9b9086163303f846ee2806d2
URL: https://github.com/llvm/llvm-project/commit/bf2e05c7fbc739cd9b9086163303f846ee2806d2 DIFF: https://github.com/llvm/llvm-project/commit/bf2e05c7fbc739cd9b9086163303f846ee2806d2.diff LOG: [clang][NFC] Fill in historical data on when C++ DR 1-99 were fixed Added: Modified: clang/test/CXX/drs/dr0xx.cpp clang/www/cxx_dr_status.html Removed: ################################################################################ diff --git a/clang/test/CXX/drs/dr0xx.cpp b/clang/test/CXX/drs/dr0xx.cpp index 5a127ff4f4164e1..1210c7a834e5970 100644 --- a/clang/test/CXX/drs/dr0xx.cpp +++ b/clang/test/CXX/drs/dr0xx.cpp @@ -64,7 +64,7 @@ namespace dr4 { // dr4: yes } } -namespace dr5 { // dr5: yes +namespace dr5 { // dr5: 3.1 struct A {} a; struct B { B(const A&); @@ -78,7 +78,7 @@ namespace dr5 { // dr5: yes const C c = e; } -namespace dr7 { // dr7: yes +namespace dr7 { // dr7: 3.4 class A { public: ~A(); }; class B : virtual private A {}; // expected-note 2 {{declared private here}} class C : public B {} c; // expected-error 2 {{inherited virtual base class 'A' has private destructor}} \ @@ -114,7 +114,7 @@ namespace dr8 { // dr8: dup 45 A::T<A::U, A::k, &A::f> *A::g() { return 0; } } -namespace dr9 { // dr9: yes +namespace dr9 { // dr9: 2.8 struct B { protected: int m; // expected-note {{here}} @@ -175,7 +175,7 @@ namespace dr13 { // dr13: no int a4 = h(g); } -namespace dr14 { // dr14: yes +namespace dr14 { // dr14: 3.4 namespace X { extern "C" int dr14_f(); } namespace Y { extern "C" int dr14_f(); } using namespace X; @@ -201,7 +201,7 @@ namespace dr15 { // dr15: yes template<typename T> void f(int = 0); // expected-error {{default arguments cannot be added}} } -namespace dr16 { // dr16: yes +namespace dr16 { // dr16: 2.8 class A { // expected-note {{here}} void f(); // expected-note {{here}} friend class C; @@ -230,7 +230,7 @@ namespace dr17 { // dr17: yes // dr18: sup 577 -namespace dr19 { // dr19: yes +namespace dr19 { // dr19: 3.1 struct A { int n; // expected-note {{here}} }; @@ -243,7 +243,7 @@ namespace dr19 { // dr19: yes }; } -namespace dr20 { // dr20: yes +namespace dr20 { // dr20: 2.8 class X { public: X(); @@ -254,7 +254,7 @@ namespace dr20 { // dr20: yes X x = f(); // expected-error {{private}} } -namespace dr21 { // dr21: yes +namespace dr21 { // dr21: 3.4 template<typename T> struct A; struct X { template<typename T = int> friend struct A; // expected-error {{default template argument not permitted on a friend template}} @@ -398,7 +398,7 @@ namespace dr30 { // dr30: sup 468 c++11 #endif } -namespace dr31 { // dr31: yes +namespace dr31 { // dr31: 2.8 class X { private: void operator delete(void*); // expected-note {{here}} @@ -410,7 +410,7 @@ namespace dr31 { // dr31: yes // dr32: na -namespace dr33 { // dr33: yes +namespace dr33 { // dr33: 9 namespace X { struct S; void f(void (*)(S)); } // expected-note {{candidate}} namespace Y { struct T; void f(void (*)(T)); } // expected-note {{candidate}} void g(X::S); @@ -667,7 +667,7 @@ namespace dr48 { // dr48: yes const int &c = S::o; } -namespace dr49 { // dr49: yes +namespace dr49 { // dr49: 2.8 template<int*> struct A {}; // expected-note 0-2{{here}} int k; #if __has_feature(cxx_constexpr) @@ -703,7 +703,7 @@ namespace dr50 { // dr50: yes X *u = dynamic_cast<X*>(p); // expected-error {{incomplete}} } -namespace dr51 { // dr51: yes +namespace dr51 { // dr51: 2.8 struct A {}; struct B : A {}; struct S { @@ -713,9 +713,7 @@ namespace dr51 { // dr51: yes A &a = s; } -namespace dr52 { // dr52: yes - struct A { int n; }; // expected-note {{here}} - struct B : private A {} b; // expected-note 2{{private}} +namespace dr52 { // dr52: 2.8 // FIXME: This first diagnostic is very strangely worded, and seems to be bogus. int k = b.A::n; // expected-error {{'A' is a private member of 'dr52::A'}} // expected-error@-1 {{cannot cast 'struct B' to its private base}} @@ -726,7 +724,7 @@ namespace dr53 { // dr53: yes enum E { e } x = static_cast<E>(n); } -namespace dr54 { // dr54: yes +namespace dr54 { // dr54: 2.8 struct A { int a; } a; struct V { int v; } v; struct B : private A, virtual V { int b; } b; // expected-note 6{{private here}} @@ -777,7 +775,7 @@ namespace dr56 { // dr56: yes }; } -namespace dr58 { // dr58: yes +namespace dr58 { // dr58: 3.1 // FIXME: Ideally, we should have a CodeGen test for this. #if __cplusplus >= 201103L enum E1 { E1_0 = 0, E1_1 = 1 }; @@ -834,7 +832,7 @@ namespace dr60 { // dr60: yes int &n = f(k); } -namespace dr61 { // dr61: yes +namespace dr61 { // dr61: 3.4 struct X { static void f(); } x; @@ -849,7 +847,7 @@ namespace dr61 { // dr61: yes void (*r)() = y.f; // expected-error {{cannot create a non-constant pointer to member function}} } -namespace dr62 { // dr62: yes +namespace dr62 { // dr62: 2.9 struct A { struct { int n; } b; }; @@ -937,7 +935,7 @@ namespace dr66 { // dr66: no // dr67: na -namespace dr68 { // dr68: yes +namespace dr68 { // dr68: 2.8 template<typename T> struct X {}; struct ::dr68::X<int> x1; struct ::dr68::template X<int> x2; @@ -962,7 +960,7 @@ namespace dr68 { // dr68: yes }; } -namespace dr69 { // dr69: yes +namespace dr69 { // dr69: 9 template<typename T> static void f() {} // #dr69-f // FIXME: Should we warn here? inline void g() { f<int>(); } @@ -1026,7 +1024,7 @@ namespace dr78 { // dr78: sup ???? // dr79: na -namespace dr80 { // dr80: yes +namespace dr80 { // dr80: 2.9 struct A { int A; }; @@ -1070,7 +1068,7 @@ namespace dr84 { // dr84: yes #endif } -namespace dr85 { // dr85: yes +namespace dr85 { // dr85: 3.4 struct A { struct B; struct B {}; // expected-note{{previous declaration is here}} @@ -1109,7 +1107,7 @@ namespace dr87 { // dr87: no X<void(void() throw())> y; } -namespace dr88 { // dr88: yes +namespace dr88 { // dr88: 2.8 template<typename T> struct S { static const int a = 1; // expected-note {{previous}} static const int b; @@ -1197,7 +1195,7 @@ namespace dr94 { // dr94: yes int arr[A::n]; } -namespace dr95 { // dr95: yes +namespace dr95 { // dr95: 3.3 struct A; struct B; namespace N { diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index 266891a2e373090..7cf657a47d64093 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -67,7 +67,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/5.html">5</a></td> <td>CD1</td> <td>CV-qualifiers and type conversions</td> - <td class="full" align="center">Yes</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> @@ -79,7 +79,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/7.html">7</a></td> <td>NAD</td> <td>Can a class with a private virtual base class be derived from?</td> - <td class="full" align="center">Yes</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> @@ -91,7 +91,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/9.html">9</a></td> <td>CD1</td> <td>Clarification of access to base class members</td> - <td class="full" align="center">Yes</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> @@ -121,7 +121,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/14.html">14</a></td> <td>NAD</td> <td>extern "C" functions and declarations in diff erent namespaces</td> - <td class="full" align="center">Yes</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> @@ -133,7 +133,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/16.html">16</a></td> <td>CD1</td> <td>Access to members of indirect private base classes</td> - <td class="full" align="center">Yes</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> @@ -151,19 +151,19 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/19.html">19</a></td> <td>NAD</td> <td>Clarify protected member access</td> - <td class="full" align="center">Yes</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>TC1</td> <td>Some clarifications needed for 12.8 para 15</td> - <td class="full" align="center">Yes</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>TC1</td> <td>Can a default argument for a template parameter appear in a friend declaration?</td> - <td class="full" align="center">Yes</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> @@ -223,7 +223,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/31.html">31</a></td> <td>NAD</td> <td>Looking up new/delete</td> - <td class="full" align="center">Yes</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> @@ -235,7 +235,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/33.html">33</a></td> <td>TC1</td> <td>Argument dependent lookup and overloaded functions</td> - <td class="full" align="center">Yes</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> @@ -331,7 +331,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/49.html">49</a></td> <td>TC1</td> <td>Restriction on non-type, non-value template arguments</td> - <td class="full" align="center">Yes</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> @@ -343,13 +343,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/51.html">51</a></td> <td>TC1</td> <td>Overloading and user-defined conversions</td> - <td class="full" align="center">Yes</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>TC1</td> <td>Non-static members, member selection and access checking</td> - <td class="full" align="center">Yes</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> @@ -361,7 +361,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/54.html">54</a></td> <td>CD1</td> <td>Static_cast from private base to derived class</td> - <td class="full" align="center">Yes</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> @@ -385,7 +385,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/58.html">58</a></td> <td>CD1</td> <td>Signedness of bit fields of enum type</td> - <td class="full" align="center">Yes</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</a></td> @@ -403,13 +403,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/61.html">61</a></td> <td>NAD</td> <td>Address of static member function "<TT>&p->f</TT>"</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.4</td> </tr> <tr id="62"> <td><a href="https://cplusplus.github.io/CWG/issues/62.html">62</a></td> <td>CD1</td> <td>Unnamed members of classes used as type parameters</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="63"> <td><a href="https://cplusplus.github.io/CWG/issues/63.html">63</a></td> @@ -445,13 +445,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/68.html">68</a></td> <td>TC1</td> <td>Grammar does not allow "friend class A<int>;"</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="69"> <td><a href="https://cplusplus.github.io/CWG/issues/69.html">69</a></td> <td>TC1</td> <td>Storage class specifiers on template declarations</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 9</td> </tr> <tr id="70"> <td><a href="https://cplusplus.github.io/CWG/issues/70.html">70</a></td> @@ -517,7 +517,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/80.html">80</a></td> <td>TC1</td> <td>Class members with same name as class</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="81"> <td><a href="https://cplusplus.github.io/CWG/issues/81.html">81</a></td> @@ -547,7 +547,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/85.html">85</a></td> <td>TC1</td> <td>Redeclaration of member class</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.4</td> </tr> <tr id="86"> <td><a href="https://cplusplus.github.io/CWG/issues/86.html">86</a></td> @@ -565,7 +565,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/88.html">88</a></td> <td>NAD</td> <td>Specialization of member constant templates</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="89"> <td><a href="https://cplusplus.github.io/CWG/issues/89.html">89</a></td> @@ -607,7 +607,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/95.html">95</a></td> <td>NAD</td> <td>Elaborated type specifiers referencing names declared in friend decls</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.3</td> </tr> <tr id="96"> <td><a href="https://cplusplus.github.io/CWG/issues/96.html">96</a></td> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits