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 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::operator delete' requested here}} - + // expected-note@#dr127-p {{in instantiation of member function 'dr127::A::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::operator delete' requested here}} + // expected-note@#dr127-q {{in instantiation of member function 'dr127::A::operator delete' requested here}} void operator delete(void *) { T::error; } }; A *p = new A; // #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 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 T f(); template struct X { int arr[fold(g == &f) ? 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 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 void f(); template void f() {} // expected-error {{function template partial specialization}} template<> void f() {} } -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 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 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) {} // expected-error {{ambiguous}} } -namespace dr286 { // dr286: yes +namespace dr286 { // dr286: 2.8 template struct A { class C { template 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 @@

C++ defect report implementation status

4 CD1 Does extern "C" affect the linkage of function names with internal linkage? - Yes + Clang 2.8 5 @@ -253,7 +253,7 @@

C++ defect report implementation status

36 CD6 using-declarations in multiple-declaration contexts - Yes + Clang 2.8 37 @@ -799,7 +799,7 @@

C++ defect report implementation status

127 TC1 Ambiguity in description of matching deallocation function - Yes + Clang 2.9 128 @@ -1063,7 +1063,7 @@

C++ defect report implementation status

171 TC1 Global namespace scope - Yes + Clang 3.4 172 @@ -1129,7 +1129,7 @@

C++ defect report implementation status

182 NAD Access checking on explicit specializations - Yes + Clang 14 183 @@ -1249,7 +1249,7 @@

C++ defect report implementation status

202 TC1 Use of overloaded function name - Yes + Clang 3.1 203 @@ -1292,7 +1292,7 @@

C++ defect report implementation status

NAD Must friend declaration names be accessible? - Yes + Clang 3.2 210 @@ -1328,7 +1328,7 @@

C++ defect report implementation status

215 CD1 Template parameters are not allowed in nested-name-specifiers - Yes + Clang 2.9 216 @@ -1364,7 +1364,7 @@

C++ defect report implementation status

221 CD1 Must compound assignment operators be member functions? - Yes + Clang 3.6 222 @@ -1412,13 +1412,13 @@

C++ defect report implementation status

229 NAD Partial specialization of function templates - Yes + Clang 2.9 230 NAD Calls to pure virtual functions - Yes + Clang 3.0 231 @@ -1454,7 +1454,7 @@

C++ defect report implementation status

236 NAD Explicit temporaries and integral constant expressions - Yes + Clang 3.2 237 @@ -1514,7 +1514,7 @@

C++ defect report implementation status

246 CD1 Jumps in function-try-block handlers - Yes + Clang 3.2 247 @@ -1550,7 +1550,7 @@

C++ defect report implementation status

252 CD1 Looking up deallocation functions in virtual destructors - Yes + Clang 3.1 253 @@ -1562,7 +1562,7 @@

C++ defect report implementation status

254 CD1 Definitional problems with elaborated-type-specifiers - Yes + Clang 2.9 255 @@ -1580,13 +1580,13 @@

C++ defect report implementation status

257 CD2 Abstract base constructors and virtual base initialization - Yes + Clang 3.4 258 CD1 using-declarations and cv-qualifiers - Yes + Clang 2.8 259 @@ -1616,7 +1616,7 @@

C++ defect report implementation status

263 CD1 Can a constructor be declared a friend? - Yes + Clang 3.3 264 @@ -1701,7 +1701,7 @@

C++ defect report implementation status

277 CD1 Zero-initialization of pointers - Yes + Clang 3.1 278 @@ -1719,7 +1719,7 @@

C++ defect report implementation status

280 CD1 Access and surrogate call functions - Yes + Clang 2.9 281 @@ -1755,7 +1755,7 @@

C++ defect report implementation status

286 CD1 Incorrect example in partial specialization - Yes + Clang 2.8 287 @@ -1827,13 +1827,13 @@

C++ defect report implementation status

298 CD1 T::x when T is cv-qualified - Yes + Clang 3.1 299 CD1 Conversion on array bound expression in new - Yes (C++11 onwards) + Clang 2.8 (C++11 onwards) 300