aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/warn-overloaded-virtual.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2012-12-02 13:20:44 +0000
committerDimitry Andric <dim@FreeBSD.org>2012-12-02 13:20:44 +0000
commit13cc256e404620c1de0cbcc4e43ce1e2dbbc4898 (patch)
tree2732d02d7d51218d6eed98ac7fcfc5b8794896b5 /test/SemaCXX/warn-overloaded-virtual.cpp
parent657bc3d9848e3be92029b2416031340988cd0111 (diff)
Notes
Diffstat (limited to 'test/SemaCXX/warn-overloaded-virtual.cpp')
-rw-r--r--test/SemaCXX/warn-overloaded-virtual.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/SemaCXX/warn-overloaded-virtual.cpp b/test/SemaCXX/warn-overloaded-virtual.cpp
index 8e2b671bf493..9b0f5aa9f339 100644
--- a/test/SemaCXX/warn-overloaded-virtual.cpp
+++ b/test/SemaCXX/warn-overloaded-virtual.cpp
@@ -64,3 +64,59 @@ public:
static void f() {}
};
}
+
+namespace ThreeLayer {
+struct A {
+ virtual void f();
+};
+
+struct B: A {
+ void f();
+ void f(int);
+};
+
+struct C: B {
+ void f(int);
+ using A::f;
+};
+}
+
+namespace UnbalancedVirtual {
+struct Base {
+ virtual void func();
+};
+
+struct Derived1: virtual Base {
+ virtual void func();
+};
+
+struct Derived2: virtual Base {
+};
+
+struct MostDerived: Derived1, Derived2 {
+ void func(int);
+ void func();
+};
+}
+
+namespace UnbalancedVirtual2 {
+struct Base {
+ virtual void func();
+};
+
+struct Derived1: virtual Base {
+ virtual void func();
+};
+
+struct Derived2: virtual Base {
+};
+
+struct Derived3: Derived1 {
+ virtual void func();
+};
+
+struct MostDerived: Derived3, Derived2 {
+ void func(int);
+ void func();
+};
+}