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