blob: 8b94989626469f9bc5a7ccf9e00628b12d446970 [file] [log] [blame]
Daniel Dunbard7d5f022009-03-24 02:24:46 +00001// RUN: clang-cc -fsyntax-only -verify %s
Ted Kremenek4726d032009-03-23 22:28:25 +00002
3void f1(void) {
4 int x, y, z;
5 #pragma unused(x)
6 #pragma unused(y, z)
7
8 int w; // FIXME: We should emit a warning that 'w' is unused.
9 #pragma unused w // expected-warning{{missing '(' after '#pragma unused' - ignoring}}
10}
11
12void f2(void) {
13 int x, y;
14 #pragma unused(x,) // expected-warning{{expected '#pragma unused' argument to be a variable name}}
15 #pragma unused() // expected-warning{{expected '#pragma unused' argument to be a variable name}}
16}
17
18void f3(void) {
Ted Kremenek7a02a372009-08-03 23:24:57 +000019 #pragma unused(x) // expected-warning{{undeclared variable 'x' used as an argument for '#pragma unused'}}
Ted Kremenek4726d032009-03-23 22:28:25 +000020}
21
22void f4(void) {
23 int w; // FIXME: We should emit a warning that 'w' is unused.
24 #pragma unused((w)) // expected-warning{{expected '#pragma unused' argument to be a variable name}}
25}
26
27int k;
28void f5(void) {
Ted Kremenek7a02a372009-08-03 23:24:57 +000029 #pragma unused(k) // expected-warning{{only local variables can be arguments to '#pragma unused'}}
Ted Kremenek4726d032009-03-23 22:28:25 +000030}
31
32void f6(void) {
33 int z; // no-warning
34 {
35 #pragma unused(z) // no-warning
36 }
37}
38
Ted Kremenek7a02a372009-08-03 23:24:57 +000039void f7() {
40 int y;
41 #pragma unused(undeclared, undefined, y) // expected-warning{{undeclared variable 'undeclared' used as an argument for '#pragma unused'}} expected-warning{{undeclared variable 'undefined' used as an argument for '#pragma unused'}}
42}
43