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