1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 %s -verify -fsyntax-only -Wgcc-compat 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuc namespace N { c1(int * a)4*f4a2713aSLionel Sambuc void c1(int *a) {} 5*f4a2713aSLionel Sambuc } 6*f4a2713aSLionel Sambuc c2(int * a)7*f4a2713aSLionel Sambucvoid c2(int *a) {} 8*f4a2713aSLionel Sambuc 9*f4a2713aSLionel Sambuc template <typename Ty> c3(Ty * a)10*f4a2713aSLionel Sambucvoid c3(Ty *a) {} 11*f4a2713aSLionel Sambuc t3()12*f4a2713aSLionel Sambucvoid t3() { 13*f4a2713aSLionel Sambuc int v1 __attribute__((cleanup(N::c1))); // expected-warning {{GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier}} 14*f4a2713aSLionel Sambuc int v2 __attribute__((cleanup(c2))); 15*f4a2713aSLionel Sambuc int v3 __attribute__((cleanup(c3<int>))); // expected-warning {{GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier}} 16*f4a2713aSLionel Sambuc } 17