brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 8151bf7 Raw
68 lines · cpp
1// RUN: %clang_cc1 -triple=x86_64-unknown-unknown -fsyntax-only -verify %s2// RUN: %clang_cc1 -triple=x86_64-unknown-unknown -fsyntax-only -DSYSTEM -verify %s3// RUN: %clang_cc1 -triple=x86_64-unknown-unknown -fsyntax-only -DNOERROR -Wno-error=init-priority-reserved -verify %s4// RUN: %clang_cc1 -triple=s390x-none-zos -fsyntax-only -verify=unknown %s5// RUN: %clang_cc1 -triple=s390x-none-zos -fsyntax-only -DSYSTEM -verify=unknown-system %s6 7#if defined(SYSTEM)8#5 "init-priority-attr.cpp" 3 // system header9#endif10 11class Two {12private:13    int i, j, k;14public:15    static int count;16    Two( int ii, int jj ) { i = ii; j = jj; k = count++; };17    Two( void )           { i =  0; j =  0; k = count++; };18    int eye( void ) { return i; };19    int jay( void ) { return j; };20    int kay( void ) { return k; };21};22 23extern Two foo;24extern Two goo;25extern Two coo[];26extern Two koo[];27 28// unknown-system-no-diagnostics29 30Two foo __attribute__((init_priority(101))) ( 5, 6 );31// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}32 33Two loo __attribute__((init_priority(65535))) ( 5, 6 );34// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}35 36Two goo __attribute__((init_priority(2,3))) ( 5, 6 ); // expected-error {{'init_priority' attribute takes one argument}}37// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}38 39Two coo[2]  __attribute__((init_priority(100)));40#if !defined(SYSTEM)41#if !defined(NOERROR)42  // expected-error@-3 {{requested 'init_priority' 100 is reserved for internal use}}43#else  // defined(NOERROR)44  // expected-warning@-5 {{requested 'init_priority' 100 is reserved for internal use}}45#endif // !defined(NOERROR)46  // unknown-warning@-7 {{unknown attribute 'init_priority' ignored}}47#endif // !defined(SYSTEM)48 49Two zoo[2]  __attribute__((init_priority(-1))); // expected-error {{'init_priority' attribute requires integer constant between 0 and 65535 inclusive}}50// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}51 52Two boo[2]  __attribute__((init_priority(65536))); // expected-error {{'init_priority' attribute requires integer constant between 0 and 65535 inclusive}}53// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}54 55Two koo[4]  __attribute__((init_priority(1.13))); // expected-error {{'init_priority' attribute requires an integer constant}}56// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}57 58Two func()  __attribute__((init_priority(1001))); // expected-error {{'init_priority' attribute only applies to variables}}59// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}60 61int i  __attribute__((init_priority(1001))); // expected-error {{can only use 'init_priority' attribute on file-scope definitions of objects of class type}}62// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}63 64int main() {65  Two foo __attribute__((init_priority(1001))); // expected-error {{can only use 'init_priority' attribute on file-scope definitions of objects of class type}}66// unknown-warning@-1 {{unknown attribute 'init_priority' ignored}}67}68