1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | |
3 | class Two { |
4 | private: |
5 | int i, j, k; |
6 | public: |
7 | static int count; |
8 | Two( int ii, int jj ) { i = ii; j = jj; k = count++; }; |
9 | Two( void ) { i = 0; j = 0; k = count++; }; |
10 | int eye( void ) { return i; }; |
11 | int jay( void ) { return j; }; |
12 | int kay( void ) { return k; }; |
13 | }; |
14 | |
15 | extern Two foo; |
16 | extern Two goo; |
17 | extern Two coo[]; |
18 | extern Two koo[]; |
19 | |
20 | Two foo __attribute__((init_priority(101))) ( 5, 6 ); |
21 | |
22 | Two goo __attribute__((init_priority(2,3))) ( 5, 6 ); // expected-error {{'init_priority' attribute takes one argument}} |
23 | |
24 | Two coo[2] __attribute__((init_priority(3))); // expected-error {{'init_priority' attribute requires integer constant between 101 and 65535 inclusive}} |
25 | |
26 | Two koo[4] __attribute__((init_priority(1.13))); // expected-error {{'init_priority' attribute requires an integer constant}} |
27 | |
28 | Two func() __attribute__((init_priority(1001))); // expected-error {{'init_priority' attribute only applies to variables}} |
29 | |
30 | int i __attribute__((init_priority(1001))); // expected-error {{can only use 'init_priority' attribute on file-scope definitions of objects of class type}} |
31 | |
32 | int main() { |
33 | Two foo __attribute__((init_priority(1001))); // expected-error {{can only use 'init_priority' attribute on file-scope definitions of objects of class type}} |
34 | } |
35 | |
36 | |