From: Anders Carlsson Date: Sat, 31 Jan 2009 19:07:49 +0000 (+0000) Subject: Forgot to add this test. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b95907d6b65ac759ac8ccd6be4f2a1f3eb389e87;p=clang Forgot to add this test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63484 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Sema/attr-cleanup.c b/test/Sema/attr-cleanup.c new file mode 100644 index 0000000000..c58d17b7ef --- /dev/null +++ b/test/Sema/attr-cleanup.c @@ -0,0 +1,31 @@ +// RUN: clang %s -verify -fsyntax-only + +void c1(int *a); + +extern int g1 __attribute((cleanup(c1))); // expected-warning {{cleanup attribute ignored}} +int g2 __attribute((cleanup(c1))); // expected-warning {{cleanup attribute ignored}} +static int g3 __attribute((cleanup(c1))); // expected-warning {{cleanup attribute ignored}} + +void t1() +{ + int v1 __attribute((cleanup)); // expected-error {{attribute requires 1 argument(s)}} + int v2 __attribute((cleanup(1, 2))); // expected-error {{attribute requires 1 argument(s)}} + + static int v3 __attribute((cleanup(c1))); // expected-warning {{cleanup attribute ignored}} + + int v4 __attribute((cleanup(h))); // expected-error {{'cleanup' argument 'h' not found}} + + int v5 __attribute((cleanup(c1))); + int v6 __attribute((cleanup(v3))); // expected-error {{'cleanup' argument 'v3' is not a function}} +} + +struct s { + int a, b; +}; + +void c2(); + +void t2() +{ + int v1 __attribute__((cleanup(c2))); // expected-error {{'cleanup' function 'c2' must take 1 parameter}} +} \ No newline at end of file