summaryrefslogtreecommitdiffstats
path: root/test/CXX
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2012-04-09 21:51:56 +0000
committerJohn McCall <rjmccall@apple.com>2012-04-09 21:51:56 +0000
commit63f557804b76bf765aea58e5a46503e47e21f7c1 (patch)
tree5dd698c22f18409e3fa1dc0ba532434f20a31305 /test/CXX
parent12d8d80fb0f8d9cddecb34da0f37b0dc9fcaf5e6 (diff)
My original patch missed the virtual-base case for destroying
base-class subojects. Incidentally, thinking about virtual bases makes it clear to me that we're not appropriately computing the access to the virtual base's member because we're not computing the best possible access to the virtual base at all; in fact, we're basically assuming it's public. I'll file a separate PR about that. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154346 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CXX')
-rw-r--r--test/CXX/class.access/class.protected/p1.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/CXX/class.access/class.protected/p1.cpp b/test/CXX/class.access/class.protected/p1.cpp
index 75c3ffffe8..c9491e1196 100644
--- a/test/CXX/class.access/class.protected/p1.cpp
+++ b/test/CXX/class.access/class.protected/p1.cpp
@@ -501,3 +501,19 @@ namespace test15 {
}
};
}
+
+namespace test16 {
+ class A {
+ protected:
+ ~A();
+ };
+
+ class B : public virtual A {
+ public:
+ ~B() {}
+ };
+
+ class C : public B {
+ ~C() {}
+ };
+}