18fbe78f6SDaniel Dunbar // RUN: %clang_cc1 -fsyntax-only -verify %s 28df7462fSEli Friedman 38df7462fSEli Friedman // Note that this puts the expected lines before the directives to work around 48df7462fSEli Friedman // limitations in the -verify mode. 58df7462fSEli Friedman 68df7462fSEli Friedman int x; 78df7462fSEli Friedman /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak 88df7462fSEli Friedman #pragma weak x 98df7462fSEli Friedman 103c1291d3SEli Friedman extern int z; 118df7462fSEli Friedman /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z = = 128df7462fSEli Friedman /* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z = 137d470f34SRyan Flynn /* expected-warning {{weak identifier 'y' never declared}} */ #pragma weak z = y 148df7462fSEli Friedman 153c1291d3SEli Friedman extern int a; 168df7462fSEli Friedman /* expected-warning {{extra tokens at end of '#pragma weak'}}*/ #pragma weak a b 178df7462fSEli Friedman /* expected-warning {{extra tokens at end of '#pragma weak'}}*/ #pragma weak a = x c 18*426a47bdSRichard Smith 19*426a47bdSRichard Smith pragma_is_not_a_statement(int x)20*426a47bdSRichard Smithvoid pragma_is_not_a_statement(int x) 21*426a47bdSRichard Smith { 22*426a47bdSRichard Smith int t; 23*426a47bdSRichard Smith 24*426a47bdSRichard Smith { 25*426a47bdSRichard Smith if (x) 26*426a47bdSRichard Smith #pragma weak t 27*426a47bdSRichard Smith else // expected-error {{expected expression}} 28*426a47bdSRichard Smith #pragma weak t 29*426a47bdSRichard Smith } 30*426a47bdSRichard Smith 31*426a47bdSRichard Smith switch (x) { 32*426a47bdSRichard Smith case 1: 33*426a47bdSRichard Smith #pragma weak t 34*426a47bdSRichard Smith } // expected-error {{expected statement}} 35*426a47bdSRichard Smith switch(x) { 36*426a47bdSRichard Smith default: 37*426a47bdSRichard Smith #pragma weak t 38*426a47bdSRichard Smith } // expected-error {{expected statement}} 39*426a47bdSRichard Smith 40*426a47bdSRichard Smith label: 41*426a47bdSRichard Smith #pragma weak t 42*426a47bdSRichard Smith } // expected-error {{expected statement}} 43*426a47bdSRichard Smith 44*426a47bdSRichard Smith 45