|  | // RUN: %clang_cc1 %s -verify -fsyntax-only -Wno-gcc-compat | 
|  |  | 
|  | namespace N { | 
|  | void c1(int *a) {} | 
|  | } | 
|  |  | 
|  | class C { | 
|  | static void c2(int *a) {}  // expected-note {{implicitly declared private here}} expected-note {{implicitly declared private here}} | 
|  | }; | 
|  |  | 
|  | void t1() { | 
|  | int v1 __attribute__((cleanup(N::c1))); | 
|  | int v2 __attribute__((cleanup(N::c2)));  // expected-error {{no member named 'c2' in namespace 'N'}} | 
|  | int v3 __attribute__((cleanup(C::c2)));  // expected-error {{'c2' is a private member of 'C'}} | 
|  | } | 
|  |  | 
|  | class D : public C { | 
|  | void t2() { | 
|  | int v1 __attribute__((cleanup(c2)));  // expected-error {{'c2' is a private member of 'C'}} | 
|  | } | 
|  | }; | 
|  |  | 
|  | namespace E { | 
|  | void c3(int *a) {} // expected-note {{candidate function}} | 
|  | void c3() {}       // expected-note {{candidate function}} | 
|  | void t3() { | 
|  | int v1 __attribute__((cleanup(c3))); // expected-error {{'c3' is not a single function}} | 
|  | } | 
|  | } |