Author: Vlad Serebrennikov Date: 2023-12-02T21:25:00+03:00 New Revision: 2f9c922a12e9f15abe5f6b1a50d684414be47d26
URL: https://github.com/llvm/llvm-project/commit/2f9c922a12e9f15abe5f6b1a50d684414be47d26 DIFF: https://github.com/llvm/llvm-project/commit/2f9c922a12e9f15abe5f6b1a50d684414be47d26.diff LOG: [clang][NFC] Fill in historical data on when C++ DRs 200-299 were fixed Added: Modified: clang/test/CXX/drs/dr0xx.cpp clang/test/CXX/drs/dr1xx.cpp clang/test/CXX/drs/dr2xx.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 768da0f8e6fa7..e5f675fb44898 100644 --- a/clang/test/CXX/drs/dr0xx.cpp +++ b/clang/test/CXX/drs/dr0xx.cpp @@ -59,7 +59,7 @@ namespace dr3 { // dr3: yes // expected-note@#dr3-f-T {{implicit instantiation first required here}} } -namespace dr4 { // dr4: yes +namespace dr4 { // dr4: 2.8 extern "C" { static void dr4_f(int) {} static void dr4_f(float) {} @@ -510,7 +510,7 @@ namespace dr33 { // dr33: 9 // dr34: na // dr35: dup 178 -namespace dr36 { // dr36: yes +namespace dr36 { // dr36: 2.8 namespace example1 { namespace A { int i; diff --git a/clang/test/CXX/drs/dr1xx.cpp b/clang/test/CXX/drs/dr1xx.cpp index 4465e7e0f1bfd..064ecace59067 100644 --- a/clang/test/CXX/drs/dr1xx.cpp +++ b/clang/test/CXX/drs/dr1xx.cpp @@ -436,17 +436,16 @@ namespace dr126 { // dr126: partial // since-cxx17-note@-2 {{use 'noexcept(false)' instead}} } -namespace dr127 { // dr127: yes +namespace dr127 { // dr127: 2.9 __extension__ typedef __decltype(sizeof(0)) size_t; template<typename T> struct A { A() { throw 0; } void *operator new(size_t, const char * = 0); void operator delete(void *, const char *) { T::error; } // #dr127-delete-const-char // expected-error@#dr127-delete-const-char {{type 'void' cannot be used prior to '::' because it has no members}} - // expected-note@#dr127-p {{in instantiation of member function 'dr127::A<void>::operator delete' requested here}} - + // expected-note@#dr127-p {{in instantiation of member function 'dr127::A<void>::operator delete' requested here}} // expected-error@#dr127-delete-const-char {{type 'int' cannot be used prior to '::' because it has no members}} - // expected-note@#dr127-q {{in instantiation of member function 'dr127::A<int>::operator delete' requested here}} + // expected-note@#dr127-q {{in instantiation of member function 'dr127::A<int>::operator delete' requested here}} void operator delete(void *) { T::error; } }; A<void> *p = new A<void>; // #dr127-p @@ -944,7 +943,7 @@ namespace dr169 { // dr169: yes }; } -namespace { // dr171: yes +namespace { // dr171: 3.4 int dr171a; } int dr171b; // #dr171b-int @@ -1113,7 +1112,7 @@ namespace dr181 { // dr181: yes } } -namespace dr182 { // dr182: yes +namespace dr182 { // dr182: 14 template <class T> struct C { void f(); void g(); diff --git a/clang/test/CXX/drs/dr2xx.cpp b/clang/test/CXX/drs/dr2xx.cpp index c03b7b60bcb4f..bbebeb22cef23 100644 --- a/clang/test/CXX/drs/dr2xx.cpp +++ b/clang/test/CXX/drs/dr2xx.cpp @@ -25,7 +25,7 @@ namespace dr200 { // dr200: dup 214 // dr201 FIXME: write codegen test -namespace dr202 { // dr202: yes +namespace dr202 { // dr202: 3.1 template<typename T> T f(); template<int (*g)()> struct X { int arr[fold(g == &f<int>) ? 1 : -1]; @@ -58,7 +58,7 @@ namespace dr207 { // dr207: yes // dr208 FIXME: write codegen test -namespace dr209 { // dr209: yes +namespace dr209 { // dr209: 3.2 class A { void f(); // expected-note {{here}} }; @@ -108,7 +108,7 @@ namespace dr214 { // dr214: yes } } -namespace dr215 { // dr215: yes +namespace dr215 { // dr215: 2.9 template<typename T> class X { friend void T::foo(); int n; @@ -198,7 +198,7 @@ namespace dr218 { // dr218: yes // dr219: na // dr220: na -namespace dr221 { // dr221: yes +namespace dr221 { // dr221: 3.6 struct A { // expected-note 2-4{{candidate}} A &operator=(int&); // expected-note 2{{candidate}} A &operator+=(int&); @@ -404,13 +404,13 @@ namespace dr228 { // dr228: yes }; } -namespace dr229 { // dr229: yes +namespace dr229 { // dr229: 2.9 template<typename T> void f(); template<typename T> void f<T*>() {} // expected-error {{function template partial specialization}} template<> void f<int>() {} } -namespace dr230 { // dr230: yes +namespace dr230 { // dr230: 3.0 struct S { S() { f(); } // expected-warning {{call to pure virtual member function}} virtual void f() = 0; // expected-note {{declared here}} @@ -430,7 +430,7 @@ namespace dr231 { // dr231: yes // dr234: na // dr235: na -namespace dr236 { // dr236: yes +namespace dr236 { // dr236: 3.2 void *p = int(); #if __cplusplus < 201103L // expected-warning@-2 {{null pointer}} @@ -586,7 +586,7 @@ namespace dr245 { // dr245: yes }; } -namespace dr246 { // dr246: yes +namespace dr246 { // dr246: 3.2 struct S { S() try { // expected-note {{try block}} throw 0; @@ -642,7 +642,7 @@ namespace dr250 { // dr250: yes FPtr gp = &g<>; } -namespace dr252 { // dr252: yes +namespace dr252 { // dr252: 3.1 struct A { void operator delete(void*); // expected-note {{found}} }; @@ -682,7 +682,7 @@ namespace dr252 { // dr252: yes G::~G() {} } -namespace dr254 { // dr254: yes +namespace dr254 { // dr254: 2.9 template<typename T> struct A { typedef typename T::type type; // ok even if this is a typedef-name, because // it's not an elaborated-type-specifier @@ -704,7 +704,7 @@ void f(S *p) { delete p; } // dr256: dup 624 -namespace dr257 { // dr257: yes +namespace dr257 { // dr257: 3.4 struct A { A(int); }; // expected-note {{here}} struct B : virtual A { B() {} @@ -719,7 +719,7 @@ namespace dr257 { // dr257: yes }; } -namespace dr258 { // dr258: yes +namespace dr258 { // dr258: 2.8 struct A { void f(const int); template<typename> void g(int); @@ -818,7 +818,7 @@ namespace dr262 { // dr262: yes int m = f(0, 0); } -namespace dr263 { // dr263: yes +namespace dr263 { // dr263: 3.3 struct X {}; struct Y { #if __cplusplus < 201103L @@ -921,13 +921,13 @@ namespace dr275 { // dr275: no // dr276: na -namespace dr277 { // dr277: yes +namespace dr277 { // dr277: 3.1 typedef int *intp; int *p = intp(); int a[fold(intp() ? -1 : 1)]; } -namespace dr280 { // dr280: yes +namespace dr280 { // dr280: 2.9 typedef void f0(); typedef void f1(int); typedef void f2(int, int); @@ -1030,7 +1030,7 @@ namespace dr285 { // dr285: yes template<> void f<int>(int, int) {} // expected-error {{ambiguous}} } -namespace dr286 { // dr286: yes +namespace dr286 { // dr286: 2.8 template<class T> struct A { class C { template<class T2> struct B {}; // expected-note {{here}} @@ -1111,7 +1111,7 @@ namespace dr296 { // dr296: yes }; } -namespace dr298 { // dr298: yes +namespace dr298 { // dr298: 3.1 struct A { typedef int type; A(); @@ -1142,7 +1142,7 @@ namespace dr298 { // dr298: yes G::~F() {} // ok } -namespace dr299 { // dr299: yes c++11 +namespace dr299 { // dr299: 2.8 c++11 struct S { operator int(); }; diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index c9bfe4c6caa83..e0e7fe14e3e1f 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -61,7 +61,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/4.html">4</a></td> <td>CD1</td> <td>Does extern "C" affect the linkage of function names with internal linkage?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="5"> <td><a href="https://cplusplus.github.io/CWG/issues/5.html">5</a></td> @@ -253,7 +253,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/36.html">36</a></td> <td>CD6</td> <td><I>using-declaration</I>s in multiple-declaration contexts</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="37"> <td><a href="https://cplusplus.github.io/CWG/issues/37.html">37</a></td> @@ -799,7 +799,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/127.html">127</a></td> <td>TC1</td> <td>Ambiguity in description of matching deallocation function</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="128"> <td><a href="https://cplusplus.github.io/CWG/issues/128.html">128</a></td> @@ -1063,7 +1063,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/171.html">171</a></td> <td>TC1</td> <td>Global namespace scope</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.4</td> </tr> <tr id="172"> <td><a href="https://cplusplus.github.io/CWG/issues/172.html">172</a></td> @@ -1129,7 +1129,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/182.html">182</a></td> <td>NAD</td> <td>Access checking on explicit specializations</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 14</td> </tr> <tr id="183"> <td><a href="https://cplusplus.github.io/CWG/issues/183.html">183</a></td> @@ -1249,7 +1249,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/202.html">202</a></td> <td>TC1</td> <td>Use of overloaded function name</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.1</td> </tr> <tr id="203"> <td><a href="https://cplusplus.github.io/CWG/issues/203.html">203</a></td> @@ -1292,7 +1292,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td>NAD</td> <td>Must friend declaration names be accessible?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.2</td> </tr> <tr id="210"> <td><a href="https://cplusplus.github.io/CWG/issues/210.html">210</a></td> @@ -1328,7 +1328,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/215.html">215</a></td> <td>CD1</td> <td>Template parameters are not allowed in <I>nested-name-specifier</I>s</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="216"> <td><a href="https://cplusplus.github.io/CWG/issues/216.html">216</a></td> @@ -1364,7 +1364,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/221.html">221</a></td> <td>CD1</td> <td>Must compound assignment operators be member functions?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.6</td> </tr> <tr id="222"> <td><a href="https://cplusplus.github.io/CWG/issues/222.html">222</a></td> @@ -1412,13 +1412,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/229.html">229</a></td> <td>NAD</td> <td>Partial specialization of function templates</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="230"> <td><a href="https://cplusplus.github.io/CWG/issues/230.html">230</a></td> <td>NAD</td> <td>Calls to pure virtual functions</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.0</td> </tr> <tr id="231"> <td><a href="https://cplusplus.github.io/CWG/issues/231.html">231</a></td> @@ -1454,7 +1454,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/236.html">236</a></td> <td>NAD</td> <td>Explicit temporaries and integral constant expressions</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.2</td> </tr> <tr id="237"> <td><a href="https://cplusplus.github.io/CWG/issues/237.html">237</a></td> @@ -1514,7 +1514,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/246.html">246</a></td> <td>CD1</td> <td>Jumps in <I>function-try-block</I> handlers</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.2</td> </tr> <tr id="247"> <td><a href="https://cplusplus.github.io/CWG/issues/247.html">247</a></td> @@ -1550,7 +1550,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/252.html">252</a></td> <td>CD1</td> <td>Looking up deallocation functions in virtual destructors</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.1</td> </tr> <tr id="253"> <td><a href="https://cplusplus.github.io/CWG/issues/253.html">253</a></td> @@ -1562,7 +1562,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/254.html">254</a></td> <td>CD1</td> <td>Definitional problems with <I>elaborated-type-specifier</I>s</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="255"> <td><a href="https://cplusplus.github.io/CWG/issues/255.html">255</a></td> @@ -1580,13 +1580,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/257.html">257</a></td> <td>CD2</td> <td>Abstract base constructors and virtual base initialization</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.4</td> </tr> <tr id="258"> <td><a href="https://cplusplus.github.io/CWG/issues/258.html">258</a></td> <td>CD1</td> <td><I>using-declaration</I>s and cv-qualifiers</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="259"> <td><a href="https://cplusplus.github.io/CWG/issues/259.html">259</a></td> @@ -1616,7 +1616,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/263.html">263</a></td> <td>CD1</td> <td>Can a constructor be declared a friend?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.3</td> </tr> <tr class="open" id="264"> <td><a href="https://cplusplus.github.io/CWG/issues/264.html">264</a></td> @@ -1701,7 +1701,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/277.html">277</a></td> <td>CD1</td> <td>Zero-initialization of pointers</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.1</td> </tr> <tr id="278"> <td><a href="https://cplusplus.github.io/CWG/issues/278.html">278</a></td> @@ -1719,7 +1719,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/280.html">280</a></td> <td>CD1</td> <td>Access and surrogate call functions</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="281"> <td><a href="https://cplusplus.github.io/CWG/issues/281.html">281</a></td> @@ -1755,7 +1755,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/286.html">286</a></td> <td>CD1</td> <td>Incorrect example in partial specialization</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr class="open" id="287"> <td><a href="https://cplusplus.github.io/CWG/issues/287.html">287</a></td> @@ -1827,13 +1827,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/298.html">298</a></td> <td>CD1</td> <td><TT>T::x</TT> when <TT>T</TT> is cv-qualified</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.1</td> </tr> <tr id="299"> <td><a href="https://cplusplus.github.io/CWG/issues/299.html">299</a></td> <td>CD1</td> <td>Conversion on array bound expression in <TT>new</TT></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="300"> <td><a href="https://cplusplus.github.io/CWG/issues/300.html">300</a></td> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits