1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 // Note that this puts the expected lines before the directives to work around 4 // limitations in the -verify mode. 5 6 int x; 7 /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak 8 #pragma weak x 9 10 extern int z; 11 /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z = = 12 /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z = 13 /* expected-warning {{weak identifier 'y' never declared}} */ #pragma weak z = y 14 15 extern int a; 16 /* expected-warning {{extra tokens at end of '#pragma weak'}}*/ #pragma weak a b 17 /* expected-warning {{extra tokens at end of '#pragma weak'}}*/ #pragma weak a = x c 18 19 20 void pragma_is_not_a_statement(int x) 21 { 22 int t; 23 24 { 25 if (x) 26 #pragma weak t 27 else // expected-error {{expected expression}} 28 #pragma weak t 29 } 30 31 switch (x) { 32 case 1: 33 #pragma weak t 34 } // expected-error {{expected statement}} 35 switch(x) { 36 default: 37 #pragma weak t 38 } // expected-error {{expected statement}} 39 40 label: 41 #pragma weak t 42 } // expected-error {{expected statement}} 43 44 45