diff options
Diffstat (limited to 'clang/test/CXX/class/p2-0x.cpp')
| -rw-r--r-- | clang/test/CXX/class/p2-0x.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CXX/class/p2-0x.cpp b/clang/test/CXX/class/p2-0x.cpp index 1164b8f0a2f..630aa7e70f9 100644 --- a/clang/test/CXX/class/p2-0x.cpp +++ b/clang/test/CXX/class/p2-0x.cpp @@ -6,3 +6,23 @@ class B : A { }; // expected-error {{base 'A' is marked 'final'}} } +namespace Test2 { + +template<typename T> struct A final { }; // expected-note 2 {{'A' declared here}} +struct B : A<int> { }; // expected-error {{base 'A' is marked 'final'}} + +template<typename T> struct C : A<T> { }; // expected-error {{base 'A' is marked 'final'}} +struct D : C<int> { }; // expected-note {{in instantiation of template class 'Test2::C<int>' requested here}} + +} + +namespace Test3 { + +template<typename T> struct A { }; +template<> struct A<int> final { }; // expected-note {{'A' declared here}} + +struct B : A<bool> { }; +struct C : A<int> { }; // expected-error {{base 'A' is marked 'final'}} + +} + |

