diff options
Diffstat (limited to 'clang/test/SemaTemplate/virtual-member-functions.cpp')
| -rw-r--r-- | clang/test/SemaTemplate/virtual-member-functions.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/virtual-member-functions.cpp b/clang/test/SemaTemplate/virtual-member-functions.cpp index 59df3c22aa1..9ef1849bce6 100644 --- a/clang/test/SemaTemplate/virtual-member-functions.cpp +++ b/clang/test/SemaTemplate/virtual-member-functions.cpp @@ -53,3 +53,26 @@ T *HasOutOfLineKey<T>::f(float *fp) { } HasOutOfLineKey<int> out_of_line; + +namespace std { + class type_info; +} + +namespace PR7114 { + class A { virtual ~A(); }; // expected-note{{declared private here}} + + template<typename T> + class B { + public: + class Inner : public A { }; // expected-error{{base class 'PR7114::A' has private destructor}} + static Inner i; + static const unsigned value = sizeof(i) == 4; + }; + + int f() { return B<int>::value; } + + void test_typeid(B<float>::Inner bfi) { + (void)typeid(bfi); // expected-note{{implicit default destructor}} + } +} + |

