Skip to content

Commit 456e837

Browse files
committed
Detect more unused assignments for function arguments by marking them as uASSIGNED at the beginning of function body
1 parent 5d3f51c commit 456e837

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

source/compiler/sc1.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -4294,7 +4294,9 @@ static void doarg(char *name,int ident,int offset,int tags[],int numtags,
42944294
argsym->usage|=uREAD; /* arguments of public functions are always "used" */
42954295
if(argsym->ident==iREFARRAY || argsym->ident==iREFERENCE)
42964296
argsym->usage|=uWRITTEN;
4297-
}
4297+
} else if (argsym->ident==iVARIABLE) {
4298+
argsym->usage|=uASSIGNED;
4299+
} /* if */
42984300

42994301
if (fconst)
43004302
argsym->usage|=uCONST;

source/compiler/tests/warning_240.meta

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ warning_240.pwn(12) : warning 240: previously assigned value is never used (symb
66
warning_240.pwn(14) : warning 204: symbol is assigned a value that is never used: "local_var"
77
warning_240.pwn(23) : warning 240: previously assigned value is never used (symbol "local_static_var")
88
warning_240.pwn(24) : warning 240: previously assigned value is never used (symbol "local_static_var")
9+
warning_240.pwn(49) : warning 240: previously assigned value is never used (symbol "arg")
910
warning_240.pwn(50) : warning 240: previously assigned value is never used (symbol "arg")
1011
warning_240.pwn(50) : warning 204: symbol is assigned a value that is never used: "arg"
1112
"""

source/compiler/tests/warning_240.pwn

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ test_global_static()
4646

4747
test_arg(arg)
4848
{
49-
arg = 0;
49+
arg = 0; // warning 240
5050
arg = 1; // warning 240, warning 204
5151
}
5252

0 commit comments

Comments
 (0)