blob: bfa9d17dbc21766572c06badf2e8a2604ce91ca2 [file] [log] [blame]
John McCallf4a1b772015-09-09 23:04:17 +00001// RUN: %clang_cc1 -fms-extensions -verify %s
2
3// rdar://22464808
4
5namespace test0 {
6 class A {
7 private:
8 void foo(int*);
9 public:
10 void foo(long*);
11 };
12 class B : public A {
13 void test() {
14 __super::foo((long*) 0);
15 }
16 };
17}
18
19namespace test1 {
20 struct A {
21 static void foo(); // expected-note {{member is declared here}}
22 };
23 struct B : private A { // expected-note {{constrained by private inheritance here}}
24 void test() {
25 __super::foo();
26 }
27 };
28 struct C : public B {
29 void test() {
30 __super::foo(); // expected-error {{'foo' is a private member of 'test1::A'}}
31 }
32 };
33}
34
35namespace test2 {
36 struct A {
37 static void foo();
38 };
39 struct B : public A {
40 void test() {
41 __super::foo();
42 }
43 };
44 struct C : private B {
45 void test() {
46 __super::foo();
47 }
48 };
49}