blob: 58e52b171da50f2f8e988abb144d9ffa104395b1 [file] [log] [blame]
Douglas Gregor9ea9bdb2010-03-01 23:15:13 +00001// RUN: %clang_cc1 -fsyntax-only -Wunused-variable -fblocks -verify %s
Douglas Gregorb5352cf2009-10-08 21:35:42 +00002
3struct s0 {
4 unsigned int i;
5};
6
7int proto(int a, int b);
8
9void f0(void) {
10 int a __attribute__((unused)),
11 b; // expected-warning{{unused}}
12 return;
13}
14
15void f1(void) {
16 int i;
17 (void)sizeof(i);
18 return;
19}
Chris Lattnere6794972010-03-01 21:06:03 +000020
21// PR5933
22int f2() {
23 int X = 4; // Shouldn't have a bogus 'unused variable X' warning.
24 return Y + X; // expected-error {{use of undeclared identifier 'Y'}}
25}
Douglas Gregor9ea9bdb2010-03-01 23:15:13 +000026
27int f3() {
28 int X1 = 4;
29 (void)(Y1 + X1); // expected-error {{use of undeclared identifier 'Y1'}}
30 (void)(^() { int X = 4; }); // expected-warning{{unused}}
31 (void)(^() { int X = 4; return Y + X; }); // expected-error {{use of undeclared identifier 'Y'}}
32}