John McCall | f4a1b77 | 2015-09-09 23:04:17 +0000 | [diff] [blame^] | 1 | // RUN: %clang_cc1 -fms-extensions -verify %s |
2 | |||||
3 | // rdar://22464808 | ||||
4 | |||||
5 | namespace 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 | |||||
19 | namespace 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 | |||||
35 | namespace 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 | } |