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 6int x; 7/* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak 8#pragma weak x 9 10extern 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 15extern 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 20void 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 40label: 41#pragma weak t 42} // expected-error {{expected statement}} 43 44 45