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; Two(int ii,int jj)8 Two( int ii, int jj ) { i = ii; j = jj; k = count++; }; Two(void)9 Two( void ) { i = 0; j = 0; k = count++; }; eye(void)10 int eye( void ) { return i; }; jay(void)11 int jay( void ) { return j; }; kay(void)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 main()32int 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