1 | // RUN: %clang_cc1 %s -verify -fsyntax-only -Wno-gcc-compat |
2 | |
3 | namespace N { |
4 | void c1(int *a) {} |
5 | } |
6 | |
7 | class C { |
8 | static void c2(int *a) {} // expected-note {{implicitly declared private here}} expected-note {{implicitly declared private here}} |
9 | }; |
10 | |
11 | void t1() { |
12 | int v1 __attribute__((cleanup(N::c1))); |
13 | int v2 __attribute__((cleanup(N::c2))); // expected-error {{no member named 'c2' in namespace 'N'}} |
14 | int v3 __attribute__((cleanup(C::c2))); // expected-error {{'c2' is a private member of 'C'}} |
15 | } |
16 | |
17 | class D : public C { |
18 | void t2() { |
19 | int v1 __attribute__((cleanup(c2))); // expected-error {{'c2' is a private member of 'C'}} |
20 | } |
21 | }; |
22 | |
23 | namespace E { |
24 | void c3(int *a) {} // expected-note {{candidate function}} |
25 | void c3() {} // expected-note {{candidate function}} |
26 | void t3() { |
27 | int v1 __attribute__((cleanup(c3))); // expected-error {{'c3' is not a single function}} |
28 | } |
29 | } |
30 | |