summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/virtual-member-functions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaTemplate/virtual-member-functions.cpp')
-rw-r--r--clang/test/SemaTemplate/virtual-member-functions.cpp23
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}}
+ }
+}
+
OpenPOWER on IntegriCloud