aboutsummaryrefslogtreecommitdiff
path: root/test/Sema/constructor-attribute.c
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-07-31 22:40:48 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-07-31 22:40:48 +0000
commit3068ae0feb5d477477f45045f7ec9d0414fe57f3 (patch)
tree88d8c041f2e7178065edfbef62b9febfc0304d75 /test/Sema/constructor-attribute.c
parent22bda887aacd0e591978541a799aa43835652ec9 (diff)
Support __attribute__(({con,de}structor)) in Parse & Sema
- Including possible priority argument - In other news, the attribute parsing code really needs a cleanup git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54257 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Sema/constructor-attribute.c')
-rw-r--r--test/Sema/constructor-attribute.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/Sema/constructor-attribute.c b/test/Sema/constructor-attribute.c
new file mode 100644
index 0000000000..3f240b02e5
--- /dev/null
+++ b/test/Sema/constructor-attribute.c
@@ -0,0 +1,15 @@
+// RUN: clang -fsyntax-only -verify %s
+
+int x __attribute__((constructor)); // expected-warning {{'constructor' attribute only applies to function types}}
+int f() __attribute__((constructor));
+int f() __attribute__((constructor(1)));
+int f() __attribute__((constructor(1,2))); // expected-error {{attribute requires 0 or 1 argument(s)}}
+int f() __attribute__((constructor(1.0))); // expected-error {{'constructor' attribute requires parameter 1 to be an integer constant}}
+
+int x __attribute__((destructor)); // expected-warning {{'destructor' attribute only applies to function types}}
+int f() __attribute__((destructor));
+int f() __attribute__((destructor(1)));
+int f() __attribute__((destructor(1,2))); // expected-error {{attribute requires 0 or 1 argument(s)}}
+int f() __attribute__((destructor(1.0))); // expected-error {{'destructor' attribute requires parameter 1 to be an integer constant}}
+
+