[clang] 599cba3 - [clang][NFC] Fill in historical data on when C++ DRs 300-399 were fixed

Vlad Serebrennikov via cfe-commits cfe-commits at lists.llvm.org
Sun Dec 3 05:49:00 PST 2023


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>


        


More information about the cfe-commits mailing list