Author: Vlad Serebrennikov Date: 2023-12-03T16:48:53+03:00 New Revision: 599cba3e7c82f046f247aa1cae4948dbbdcb7cb3
URL: https://github.com/llvm/llvm-project/commit/599cba3e7c82f046f247aa1cae4948dbbdcb7cb3 DIFF: https://github.com/llvm/llvm-project/commit/599cba3e7c82f046f247aa1cae4948dbbdcb7cb3.diff LOG: [clang][NFC] Fill in historical data on when C++ DRs 300-399 were fixed Added: Modified: clang/test/CXX/drs/dr3xx.cpp clang/www/cxx_dr_status.html Removed: ################################################################################ diff --git a/clang/test/CXX/drs/dr3xx.cpp b/clang/test/CXX/drs/dr3xx.cpp index aebb33fdd583c..d12e0aea5f5ac 100644 --- a/clang/test/CXX/drs/dr3xx.cpp +++ b/clang/test/CXX/drs/dr3xx.cpp @@ -11,7 +11,7 @@ namespace dr300 { // dr300: yes void h() { f(g); } } -namespace dr301 { // dr301: yes +namespace dr301 { // dr301: 3.5 // see also dr38 struct S; template<typename T> void operator+(T, T); @@ -42,7 +42,7 @@ namespace dr301 { // dr301: yes template<typename T> class S::operator&<T*> {}; // expected-error +{{}} } -namespace dr302 { // dr302: yes +namespace dr302 { // dr302: 3.0 struct A { A(); ~A(); }; #if __cplusplus < 201103L struct B { // expected-error {{implicit default constructor for 'dr302::B' must explicitly initialize the const member 'n'}} @@ -70,7 +70,7 @@ namespace dr302 { // dr302: yes // dr303: na -namespace dr304 { // dr304: yes +namespace dr304 { // dr304: 2.9 typedef int &a; int n = a(); // expected-error {{requires an initializer}} @@ -154,7 +154,7 @@ namespace dr306 { // dr306: dup 39 // dr307: na -namespace dr308 { // dr308: yes +namespace dr308 { // dr308: 3.7 // This is mostly an ABI library issue. struct A {}; struct B : A {}; @@ -182,7 +182,7 @@ namespace dr308 { // dr308: yes // dr309: dup 485 -namespace dr311 { // dr311: yes +namespace dr311 { // dr311: 3.0 namespace X { namespace Y {} } namespace X::Y {} #if __cplusplus <= 201402L @@ -317,7 +317,7 @@ namespace dr321 { // dr321: dup 557 bool x = i == j; } -namespace dr322 { // dr322: yes +namespace dr322 { // dr322: 2.8 struct A { template<typename T> operator T&(); } a; @@ -327,7 +327,7 @@ namespace dr322 { // dr322: yes // dr323: no -namespace dr324 { // dr324: yes +namespace dr324 { // dr324: 3.6 struct S { int n : 1; } s; // expected-note 3{{bit-field is declared here}} int &a = s.n; // expected-error {{non-const reference cannot bind to bit-field}} int *b = &s.n; // expected-error {{address of bit-field}} @@ -340,7 +340,7 @@ namespace dr324 { // dr324: yes int *i = &++s.n; // expected-error {{address of bit-field}} } -namespace dr326 { // dr326: yes +namespace dr326 { // dr326: 3.1 struct S {}; int test[__is_trivially_constructible(S, const S&) ? 1 : -1]; } @@ -457,7 +457,7 @@ namespace dr330 { // dr330: 7 } } -namespace dr331 { // dr331: yes +namespace dr331 { // dr331: 11 struct A { A(volatile A&); // expected-note 2{{candidate}} } const a, b(a); // expected-error 2{{no matching constructor}} @@ -535,7 +535,7 @@ namespace dr337 { // dr337: yes struct B { virtual ~B() = 0; }; } -namespace dr339 { // dr339: yes +namespace dr339 { // dr339: 2.8 template <int I> struct A { static const int value = I; }; char xxx(int); @@ -675,7 +675,7 @@ namespace dr349 { // dr349: no // dr351: na -namespace dr352 { // dr352: yes +namespace dr352 { // dr352: 2.8 namespace example1 { namespace A { enum E {}; @@ -963,7 +963,7 @@ namespace dr367 { // dr367: yes #endif } -namespace dr368 { // dr368: yes +namespace dr368 { // dr368: 3.6 template<typename T, T> struct S {}; // expected-note {{here}} template<typename T> int f(S<T, T()> *); // expected-error {{function type}} template<typename T> int g(S<T, (T())> *); // cxx98_17-note {{type 'X'}} @@ -1079,7 +1079,8 @@ namespace dr373 { // dr373: 5 using namespace A::B; // expected-error {{expected namespace name}} } -namespace dr374 { // dr374: yes +namespace dr374 { // dr374: 7 + // NB 2.9 c++11 namespace N { template<typename T> void f(); template<typename T> struct A { void f(); }; @@ -1161,7 +1162,7 @@ namespace dr384 { // dr384: yes } } -namespace dr385 { // dr385: yes +namespace dr385 { // dr385: 2.8 struct A { protected: void f(); }; struct B : A { using A::f; }; struct C : A { void g(B b) { b.f(); } }; @@ -1173,7 +1174,7 @@ namespace dr385 { // dr385: yes int i(E e) { return e.n; } // expected-error {{protected member}} } -namespace dr387 { // dr387: yes +namespace dr387 { // dr387: 2.8 namespace old { template<typename T> class number { number(int); // expected-note 2{{here}} @@ -1316,7 +1317,7 @@ namespace dr389 { // dr389: no } } -namespace dr390 { // dr390: yes +namespace dr390 { // dr390: 3.3 template<typename T> struct A { A() { f(); } // expected-warning {{call to pure virt}} @@ -1330,7 +1331,7 @@ namespace dr390 { // dr390: yes } b; } -namespace dr391 { // dr391: yes c++11 +namespace dr391 { // dr391: 2.8 c++11 // FIXME: Should this apply to C++98 too? class A { A(const A&); }; // expected-note 0-1{{here}} A fa(); @@ -1357,7 +1358,7 @@ namespace dr391 { // dr391: yes c++11 // dr392 FIXME write codegen test // dr394: na -namespace dr395 { // dr395: yes +namespace dr395 { // dr395: 3.0 struct S { template <typename T, int N>(&operator T())[N]; // expected-error {{cannot specify any part of a return type}} template <typename T, int N> operator(T (&)[N])(); // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error +{{}} diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index e0e7fe14e3e1f..2b757df8f3df9 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -1845,13 +1845,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/301.html">301</a></td> <td>CD1</td> <td>Syntax for <I>template-name</I></td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.5</td> </tr> <tr id="302"> <td><a href="https://cplusplus.github.io/CWG/issues/302.html">302</a></td> <td>CD1</td> <td>Value-initialization and generation of default constructor</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.0</td> </tr> <tr id="303"> <td><a href="https://cplusplus.github.io/CWG/issues/303.html">303</a></td> @@ -1863,7 +1863,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/304.html">304</a></td> <td>TC1</td> <td>Value-initialization of a reference</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.9</td> </tr> <tr id="305"> <td><a href="https://cplusplus.github.io/CWG/issues/305.html">305</a></td> @@ -1887,7 +1887,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/308.html">308</a></td> <td>NAD</td> <td>Catching exceptions with ambiguous base classes</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.7</td> </tr> <tr id="309"> <td><a href="https://cplusplus.github.io/CWG/issues/309.html">309</a></td> @@ -1905,7 +1905,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/311.html">311</a></td> <td>NAD</td> <td>Using qualified name to reopen nested namespace</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.0</td> </tr> <tr id="312"> <td><a href="https://cplusplus.github.io/CWG/issues/312.html">312</a></td> @@ -1971,7 +1971,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/322.html">322</a></td> <td>CD1</td> <td>Deduction of reference conversions</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="323"> <td><a href="https://cplusplus.github.io/CWG/issues/323.html">323</a></td> @@ -1983,7 +1983,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/324.html">324</a></td> <td>CD1</td> <td>Can "<TT>&</TT>" be applied to assignment to bit-field?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.6</td> </tr> <tr class="open" id="325"> <td><a href="https://cplusplus.github.io/CWG/issues/325.html">325</a></td> @@ -1995,7 +1995,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/326.html">326</a></td> <td>CD1</td> <td>Wording for definition of trivial constructor</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.1</td> </tr> <tr id="327"> <td><a href="https://cplusplus.github.io/CWG/issues/327.html">327</a></td> @@ -2025,7 +2025,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/331.html">331</a></td> <td>CD1</td> <td>Allowed copy constructor signatures</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 11</td> </tr> <tr id="332"> <td><a href="https://cplusplus.github.io/CWG/issues/332.html">332</a></td> @@ -2073,7 +2073,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/339.html">339</a></td> <td>CD1</td> <td>Overload resolution in operand of <TT>sizeof</TT> in constant expression</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="340"> <td><a href="https://cplusplus.github.io/CWG/issues/340.html">340</a></td> @@ -2151,7 +2151,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/352.html">352</a></td> <td>CD1</td> <td>Nondeduced contexts</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="353"> <td><a href="https://cplusplus.github.io/CWG/issues/353.html">353</a></td> @@ -2247,7 +2247,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/368.html">368</a></td> <td>CD1</td> <td>Uses of non-type parameters that should cause deduction to fail</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.6</td> </tr> <tr class="open" id="369"> <td><a href="https://cplusplus.github.io/CWG/issues/369.html">369</a></td> @@ -2283,7 +2283,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/374.html">374</a></td> <td>CD2</td> <td>Can explicit specialization outside namespace use qualified name?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 7</td> </tr> <tr id="375"> <td><a href="https://cplusplus.github.io/CWG/issues/375.html">375</a></td> @@ -2349,7 +2349,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/385.html">385</a></td> <td>CD1</td> <td>How does protected member check of 11.5 interact with using-declarations?</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="386"> <td><a href="https://cplusplus.github.io/CWG/issues/386.html">386</a></td> @@ -2361,7 +2361,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/387.html">387</a></td> <td>CD1</td> <td>Errors in example in 14.6.5</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 2.8</td> </tr> <tr id="388"> <td><a href="https://cplusplus.github.io/CWG/issues/388.html">388</a></td> @@ -2379,13 +2379,13 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/390.html">390</a></td> <td>CD1</td> <td>Pure virtual must be defined when implicitly called</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.3</td> </tr> <tr id="391"> <td><a href="https://cplusplus.github.io/CWG/issues/391.html">391</a></td> <td>CD1</td> <td>Require direct binding of short-lived references to rvalues</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="392"> <td><a href="https://cplusplus.github.io/CWG/issues/392.html">392</a></td> @@ -2409,7 +2409,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2> <td><a href="https://cplusplus.github.io/CWG/issues/395.html">395</a></td> <td>NAD</td> <td>Conversion operator template syntax</td> - <td class="full" align="center">Yes</td> + <td class="full" align="center">Clang 3.0</td> </tr> <tr id="396"> <td><a href="https://cplusplus.github.io/CWG/issues/396.html">396</a></td> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits