summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/warn-overloaded-virtual.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2012-10-19 00:53:08 +0000
committerDavid Blaikie <dblaikie@gmail.com>2012-10-19 00:53:08 +0000
commit282c92a7089f44429e878f880968c765e8e211cd (patch)
treed08ab8d03a23b34faad16b8324ede53144a7e013 /clang/test/SemaCXX/warn-overloaded-virtual.cpp
parentf20544aa5244084dd36bbbdf7ac02079cb9671a1 (diff)
downloadbcm5719-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.cpp40
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();
+};
+}
OpenPOWER on IntegriCloud