summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/virtual-override.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-05-14 01:09:04 +0000
committerAnders Carlsson <andersca@mac.com>2009-05-14 01:09:04 +0000
commitf2a2e338ffecff485893425b819e96c65aced043 (patch)
tree0049f6ebd6ff77c9e05c6fbc3a09c64f04d7ea5a /clang/test/SemaCXX/virtual-override.cpp
parent06928192aeb61fef083142b574d73b34ff1e1cf4 (diff)
downloadbcm5719-llvm-f2a2e338ffecff485893425b819e96c65aced043.tar.gz
bcm5719-llvm-f2a2e338ffecff485893425b819e96c65aced043.zip
Add return type checking for overriding virtual functions. We currently don't check covariance but that's next.
llvm-svn: 71759
Diffstat (limited to 'clang/test/SemaCXX/virtual-override.cpp')
-rw-r--r--clang/test/SemaCXX/virtual-override.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/virtual-override.cpp b/clang/test/SemaCXX/virtual-override.cpp
new file mode 100644
index 00000000000..c1b95ccbdf0
--- /dev/null
+++ b/clang/test/SemaCXX/virtual-override.cpp
@@ -0,0 +1,13 @@
+// RUN: clang-cc -fsyntax-only -verify %s
+
+namespace T1 {
+
+class A {
+ virtual int f(); // expected-note{{overridden virtual function is here}}
+};
+
+class B : A {
+ virtual void f(); // expected-error{{virtual function 'f' has a different return type ('void') than the function it overrides (which has return type 'int')}}
+};
+
+}
OpenPOWER on IntegriCloud