[clang] bf2e05c - [clang][NFC] Fill in historical data on when C++ DR 1-99 were fixed
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 29 15:25:22 PST 2023
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 at -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>
More information about the cfe-commits
mailing list