diff options
| author | David Blaikie <dblaikie@gmail.com> | 2012-10-19 00:53:08 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2012-10-19 00:53:08 +0000 |
| commit | 282c92a7089f44429e878f880968c765e8e211cd (patch) | |
| tree | d08ab8d03a23b34faad16b8324ede53144a7e013 /clang/test/SemaCXX/warn-overloaded-virtual.cpp | |
| parent | f20544aa5244084dd36bbbdf7ac02079cb9671a1 (diff) | |
| download | bcm5719-llvm-282c92a7089f44429e878f880968c765e8e211cd.tar.gz bcm5719-llvm-282c92a7089f44429e878f880968c765e8e211cd.zip | |
Handle diamond inheritance in -Woverloaded-virtual.
llvm-svn: 166254
Diffstat (limited to 'clang/test/SemaCXX/warn-overloaded-virtual.cpp')
| -rw-r--r-- | clang/test/SemaCXX/warn-overloaded-virtual.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/warn-overloaded-virtual.cpp b/clang/test/SemaCXX/warn-overloaded-virtual.cpp index 79635a62f8a..9b0f5aa9f33 100644 --- a/clang/test/SemaCXX/warn-overloaded-virtual.cpp +++ b/clang/test/SemaCXX/warn-overloaded-virtual.cpp @@ -80,3 +80,43 @@ struct C: B { 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(); +}; +} |

