Home | History | Annotate | Download | only in Parser
      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