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