diff options
Diffstat (limited to 'test/SemaCXX/warn-overloaded-virtual.cpp')
-rw-r--r-- | test/SemaCXX/warn-overloaded-virtual.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/test/SemaCXX/warn-overloaded-virtual.cpp b/test/SemaCXX/warn-overloaded-virtual.cpp index 8e2b671..9b0f5aa 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(); +}; +} |