xref: /aosp_15_r20/external/clang/test/Sema/warn-unused-variables.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -Wunused-variable -fblocks -verify %s
2*67e74705SXin Li 
3*67e74705SXin Li struct s0 {
4*67e74705SXin Li 	unsigned int	i;
5*67e74705SXin Li };
6*67e74705SXin Li 
7*67e74705SXin Li int proto(int a, int b);
8*67e74705SXin Li 
f0(void)9*67e74705SXin Li void f0(void) {
10*67e74705SXin Li 	int	a __attribute__((unused)),
11*67e74705SXin Li 		b; // expected-warning{{unused}}
12*67e74705SXin Li 	return;
13*67e74705SXin Li }
14*67e74705SXin Li 
f1(void)15*67e74705SXin Li void f1(void) {
16*67e74705SXin Li 	int	i;
17*67e74705SXin Li 	(void)sizeof(i);
18*67e74705SXin Li 	return;
19*67e74705SXin Li }
20*67e74705SXin Li 
21*67e74705SXin Li // PR5933
f2()22*67e74705SXin Li int f2() {
23*67e74705SXin Li   int X = 4;  // Shouldn't have a bogus 'unused variable X' warning.
24*67e74705SXin Li   return Y + X; // expected-error {{use of undeclared identifier 'Y'}}
25*67e74705SXin Li }
26*67e74705SXin Li 
f3()27*67e74705SXin Li int f3() {
28*67e74705SXin Li   int X1 = 4;
29*67e74705SXin Li   (void)(Y1 + X1); // expected-error {{use of undeclared identifier 'Y1'}}
30*67e74705SXin Li   (void)(^() { int X = 4; }); // expected-warning{{unused}}
31*67e74705SXin Li   (void)(^() { int X = 4; return Y + X; }); // expected-error {{use of undeclared identifier 'Y'}}
32*67e74705SXin Li }
33