summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-10-18 16:24:27 +0000
committerAnders Carlsson <andersca@mac.com>2010-10-18 16:24:27 +0000
commit778ca32c88a1200015cc04a96890f865abc35718 (patch)
treee6d58957858d255c563d1c08e2186052e57b59f2 /clang/test
parent1f1f63a698032ee79469038f3d130164748ee98a (diff)
downloadbcm5719-llvm-778ca32c88a1200015cc04a96890f865abc35718.tar.gz
bcm5719-llvm-778ca32c88a1200015cc04a96890f865abc35718.zip
Implement the first half of [dcl.attr.override]p6.
llvm-svn: 116709
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.override/p6.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.override/p6.cpp b/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.override/p6.cpp
new file mode 100644
index 00000000000..e3e78c2a17b
--- /dev/null
+++ b/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.override/p6.cpp
@@ -0,0 +1,45 @@
+// RUN: %clang_cc1 -std=c++0x -fsyntax-only -verify %s
+
+namespace Override {
+
+namespace Test1 {
+
+struct A {
+ virtual ~A();
+};
+
+struct [[base_check]] B : A {
+ virtual ~B();
+};
+
+}
+
+namespace Test2 {
+
+struct A {
+ virtual void f(); // expected-note {{overridden virtual function is here}}
+};
+
+struct [[base_check]] B : A {
+ virtual void f(); // expected-error {{'f' overrides function without being marked 'override'}}
+};
+
+}
+
+namespace Test3 {
+
+struct A {
+ virtual void f(); // expected-note {{overridden virtual function is here}}
+};
+
+struct B {
+ virtual void f(); // expected-note {{overridden virtual function is here}}
+};
+
+struct [[base_check]] C : A, B {
+ virtual void f(); // expected-error {{'f' overrides functions without being marked 'override'}}
+};
+
+}
+
+}
OpenPOWER on IntegriCloud