blob: fd47dd8696b86214912ace19a18e70987d2802eb [file] [log] [blame]
Daniel Dunbar8fbe78f2009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Eli Friedman8df74622009-06-05 00:50:43 +00002
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
Eli Friedman8df74622009-06-05 00:50:43 +00009
Eli Friedman3c1291d2009-06-05 02:49:06 +000010extern int z;
Eli Friedman8df74622009-06-05 00:50:43 +000011/* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z = =
12/* expected-warning {{expected identifier in '#pragma weak'}}*/ #pragma weak z =
Ryan Flynn7d470f32009-07-30 03:15:39 +000013/* expected-warning {{weak identifier 'y' never declared}} */ #pragma weak z = y
Eli Friedman8df74622009-06-05 00:50:43 +000014
Eli Friedman3c1291d2009-06-05 02:49:06 +000015extern int a;
Eli Friedman8df74622009-06-05 00:50:43 +000016/* 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
Richard Smith426a47b2013-10-28 22:04:30 +000018
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