summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/access-base-class.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/access-base-class.cpp')
-rw-r--r--clang/test/SemaCXX/access-base-class.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/access-base-class.cpp b/clang/test/SemaCXX/access-base-class.cpp
index 29586759b04..f98437695ef 100644
--- a/clang/test/SemaCXX/access-base-class.cpp
+++ b/clang/test/SemaCXX/access-base-class.cpp
@@ -49,3 +49,34 @@ void f(D *d) {
}
}
+
+namespace T5 {
+ class A {};
+
+ class B : private A {
+ void f(B *b) {
+ A *a = b;
+ }
+ };
+}
+
+namespace T6 {
+ class C;
+
+ class A {};
+
+ class B : private A { // expected-note {{'private' inheritance specifier here}}
+ void f(C* c);
+ };
+
+ class C : public B {
+ void f(C *c) {
+ A* a = c; // expected-error {{conversion from 'class T6::C' to inaccessible base class 'class T6::A'}} \
+ expected-error {{incompatible type initializing 'class T6::C *', expected 'class T6::A *'}}
+ }
+ };
+
+ void B::f(C *c) {
+ A *a = c;
+ }
+}
OpenPOWER on IntegriCloud