diff --git a/clang/test/CXX/drs/dr4xx.cpp b/clang/test/CXX/drs/dr4xx.cpp index d8bdf49d0b2dd..acb3cbfa52e7f 100644 --- a/clang/test/CXX/drs/dr4xx.cpp +++ b/clang/test/CXX/drs/dr4xx.cpp @@ -18,7 +18,7 @@ namespace dr400 { // dr400: yes struct E : A, B { struct a b; }; // expected-error {{found in multiple base classes}} } -namespace dr401 { // dr401: yes +namespace dr401 { // dr401: 2.8 template class A : public T {}; // expected-error {{protected}} expected-error 2{{private}} class B { @@ -114,7 +114,7 @@ namespace dr405 { // dr405: yes void testE(E::S es) { f(es); } // expected-error {{undeclared identifier}} } -namespace dr406 { // dr406: yes +namespace dr406 { // dr406: 2.9 typedef struct { static int n; // expected-error {{static data member 'n' not allowed in anonymous struct}} } A; @@ -360,7 +360,7 @@ void use() { } // namespace example3 } // namespace dr418 -namespace dr420 { // dr420: yes +namespace dr420 { // dr420: 9 template struct ptr { T *operator->() const; T &operator*() const; @@ -496,7 +496,7 @@ namespace dr428 { // dr428: yes } } -namespace dr429 { // dr429: yes c++11 +namespace dr429 { // dr429: 2.8 c++11 // FIXME: This rule is obviously intended to apply to C++98 as well. struct A { static void *operator new(size_t, size_t); @@ -552,7 +552,7 @@ namespace dr431 { // dr431: yes } } -namespace dr432 { // dr432: yes +namespace dr432 { // dr432: 3.0 template struct A {}; template struct B : A {}; // expected-error {{requires template arguments}} expected-note {{declared}} template struct C : A > {}; @@ -636,14 +636,14 @@ namespace dr444 { // dr444: yes } } -namespace dr445 { // dr445: yes +namespace dr445 { // dr445: 3.2 class A { void f(); }; // expected-note {{private}} struct B { friend void A::f(); // expected-error {{private}} }; } -namespace dr446 { // dr446: yes +namespace dr446 { // dr446: 2.8 struct C; struct A { A(); @@ -695,7 +695,7 @@ namespace dr447 { // dr447: yes } } -namespace dr448 { // dr448: yes +namespace dr448 { // dr448: 2.8 template void f(int); // expected-error 0-1{{extension}} expected-note {{no known conversion}} template void g(T t) { f(t); // expected-error {{neither visible in the template definition nor found by argument-dependent lookup}} @@ -908,7 +908,7 @@ namespace dr470 { // dr470: yes template struct C; } -namespace dr471 { // dr471: yes +namespace dr471 { // dr471: 2.8 struct A { int n; }; struct B : private virtual A {}; struct C : protected virtual A {}; @@ -924,7 +924,7 @@ namespace dr471 { // dr471: yes struct H : B, G { int f() { return n; } }; // expected-error {{private}} } -namespace dr474 { // dr474: yes +namespace dr474 { // dr474: 3.4 namespace N { struct S { void f(); @@ -960,7 +960,7 @@ namespace dr478 { // dr478: yes void f(A a[10]); // expected-error {{array of abstract class type}} } -namespace dr479 { // dr479: yes +namespace dr479 { // dr479: 2.8 struct S { S(); private: @@ -1016,7 +1016,7 @@ namespace dr480 { // dr480: yes D &k = static_cast(j); // expected-error {{virtual base}} } -namespace dr481 { // dr481: yes +namespace dr481 { // dr481: 2.8 template class A { T *x; }; T *x; // expected-error {{unknown type}} @@ -1194,7 +1194,7 @@ namespace dr488 { // dr488: yes c++11 // dr489: na -namespace dr490 { // dr490: yes +namespace dr490 { // dr490: 2.8 template struct X {}; struct A { diff --git a/clang/www/cxx_dr_status.html b/clang/www/cxx_dr_status.html index 2b757df8f3df9..4d918224ded46 100755 --- a/clang/www/cxx_dr_status.html +++ b/clang/www/cxx_dr_status.html @@ -2445,7 +2445,7 @@

C++ defect report implementation status

401 CD1 When is access for template parameter default arguments checked? - Yes + Clang 2.8 402 @@ -2475,7 +2475,7 @@

C++ defect report implementation status

406 CD1 Static data member in class with name for linkage purposes - Yes + Clang 2.9 407 @@ -2559,7 +2559,7 @@

C++ defect report implementation status

420 CD1 postfixexpression->scalar_type_dtor() inconsistent - Yes + Clang 9 421 @@ -2613,7 +2613,7 @@

C++ defect report implementation status

429 CD1 Matching deallocation function chosen based on syntax or signature? - Yes (C++11 onwards) + Clang 2.8 (C++11 onwards) 430 @@ -2631,7 +2631,7 @@

C++ defect report implementation status

432 CD1 Is injected class name visible in base class specifier list? - Yes + Clang 3.0 433 @@ -2709,13 +2709,13 @@

C++ defect report implementation status

445 NAD Wording issue on friend declarations - Yes + Clang 3.2 446 CD1 Does an lvalue-to-rvalue conversion on the "?" operator produce a temporary? - Yes + Clang 2.8 447 @@ -2727,7 +2727,7 @@

C++ defect report implementation status

448 C++11 Set of template functions in call with dependent explicit argument - Yes + Clang 2.8 449 @@ -2865,7 +2865,7 @@

C++ defect report implementation status

471 NAD Conflicting inherited access specifications - Yes + Clang 2.8 472 @@ -2883,7 +2883,7 @@

C++ defect report implementation status

474 CD1 Block-scope extern declarations in namespace members - Yes + Clang 3.4 475 @@ -2913,7 +2913,7 @@

C++ defect report implementation status

479 CD1 Copy elision in exception handling - Yes + Clang 2.8 480 @@ -2925,7 +2925,7 @@

C++ defect report implementation status

481 CD2 Scope of template parameters - Yes + Clang 2.8 482 @@ -2979,7 +2979,7 @@

C++ defect report implementation status

490 CD2 Name lookup in friend declarations - Yes + Clang 2.8 491