1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-strict-prototypes %s
3 int x
__attribute__((constructor
)); // expected-warning {{'constructor' attribute only applies to functions}}
4 int f(void) __attribute__((constructor
));
5 int f(void) __attribute__((constructor(1)));
6 int f(void) __attribute__((constructor(1,2))); // expected-error {{'constructor' attribute takes no more than 1 argument}}
7 int f(void) __attribute__((constructor(1.0))); // expected-error {{'constructor' attribute requires an integer constant}}
8 int f(void) __attribute__((constructor(0x100000000))); // expected-error {{integer constant expression evaluates to value 4294967296 that cannot be represented in a 32-bit unsigned integer type}}
10 int x
__attribute__((destructor
)); // expected-warning {{'destructor' attribute only applies to functions}}
11 int f(void) __attribute__((destructor
));
12 int f(void) __attribute__((destructor(1)));
13 int f(void) __attribute__((destructor(1,2))); // expected-error {{'destructor' attribute takes no more than 1 argument}}
14 int f(void) __attribute__((destructor(1.0))); // expected-error {{'destructor' attribute requires an integer constant}}
16 void knr() __attribute__((constructor
));