[clang] 2f9c922 - [clang][NFC] Fill in historical data on when C++ DRs 200-299 were fixed
Vlad Serebrennikov via cfe-commits
cfe-commits at lists.llvm.org
Sat Dec 2 10:25:37 PST 2023
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 at -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 at -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>
More information about the cfe-commits
mailing list