blob: aafac0de206d20a7664e5c715cb65472f0799c0a [file] [log] [blame]
Argyrios Kyrtzidis2a5c45b2011-01-27 18:16:48 +00001// RUN: %clang_cc1 -fsyntax-only -Wunused-parameter -Wused-but-marked-unused -Wunused -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
Argyrios Kyrtzidis2a5c45b2011-01-27 18:16:48 +00008 int w; // expected-warning {{unused}}
Ted Kremenek4726d032009-03-23 22:28:25 +00009 #pragma unused w // expected-warning{{missing '(' after '#pragma unused' - ignoring}}
10}
11
12void f2(void) {
Argyrios Kyrtzidis2a5c45b2011-01-27 18:16:48 +000013 int x, y; // expected-warning {{unused}} expected-warning {{unused}}
Ted Kremenek4726d032009-03-23 22:28:25 +000014 #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) {
Argyrios Kyrtzidis2a5c45b2011-01-27 18:16:48 +000023 int w; // expected-warning {{unused}}
Ted Kremenek4726d032009-03-23 22:28:25 +000024 #pragma unused((w)) // expected-warning{{expected '#pragma unused' argument to be a variable name}}
25}
26
Ted Kremenek4726d032009-03-23 22:28:25 +000027void f6(void) {
28 int z; // no-warning
29 {
30 #pragma unused(z) // no-warning
31 }
32}
33
Ted Kremenek7a02a372009-08-03 23:24:57 +000034void f7() {
35 int y;
36 #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'}}
37}
38
Anders Carlsson2127ecc2010-10-22 23:37:08 +000039int f8(int x) { // expected-warning{{unused parameter 'x'}}
40 return 0;
41}
42
43int f9(int x) {
44 return x;
45}
46
47int f10(int x) {
48 #pragma unused(x)
49 return 0;
50}
51
52int f11(int x) {
53 #pragma unused(x)
54 return x; // expected-warning{{'x' was marked unused but was used}}
55}
56
57int f12(int x) {
58 int y = x;
59 #pragma unused(x) // expected-warning{{'x' was marked unused but was used}}
60 return y;
61}
Argyrios Kyrtzidis2a5c45b2011-01-27 18:16:48 +000062
63// rdar://8793832
64static int glob_var = 0;
65#pragma unused(glob_var)