| // RUN: %clang_cc1 -fblocks -fsyntax-only -Wunused-but-set-parameter -verify %s |
| |
| int f0(int x, |
| int y, // expected-warning{{parameter 'y' set but not used}} |
| int z __attribute__((unused))) { |
| y = 0; |
| return x; |
| } |
| |
| void f1(void) { |
| (void)^(int x, |
| int y, // expected-warning{{parameter 'y' set but not used}} |
| int z __attribute__((unused))) { |
| y = 0; |
| return x; |
| }; |
| } |
| |
| struct S { |
| int i; |
| }; |
| |
| // In C++, don't warn for a struct (following gcc). |
| void f3(struct S s) { |
| struct S t; |
| s = t; |
| } |
| |
| // Also don't warn for a reference. |
| void f4(int &x) { |
| x = 0; |
| } |
| |
| // Make sure this doesn't warn. |
| struct A { |
| int i; |
| A(int j) : i(j) {} |
| }; |