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
pragma_is_not_a_statement(int x)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