1 // RUN: %clang_cc1 -fblocks -fsyntax-only -Wunused-but-set-parameter -verify %s
2
f0(int x,int y,int z)3 int f0(int x,
4 int y, // expected-warning{{parameter 'y' set but not used}}
5 int z __attribute__((unused))) {
6 y = 0;
7 return x;
8 }
9
f1(void)10 void f1(void) {
11 (void)^(int x,
12 int y, // expected-warning{{parameter 'y' set but not used}}
13 int z __attribute__((unused))) {
14 y = 0;
15 return x;
16 };
17 }
18
19 struct S {
20 int i;
21 };
22
23 // In C++, don't warn for a struct (following gcc).
f3(struct S s)24 void f3(struct S s) {
25 struct S t;
26 s = t;
27 }
28
29 // Also don't warn for a reference.
f4(int & x)30 void f4(int &x) {
31 x = 0;
32 }
33
34 // Make sure this doesn't warn.
35 struct A {
36 int i;
AA37 A(int j) : i(j) {}
38 };
39