Skip to content

Commit 111a8f7

Browse files
committed
Issue warning 204 at the line where the assignment appears, not at the end of function
1 parent d410d09 commit 111a8f7

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

source/compiler/sc1.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5080,8 +5080,11 @@ static void destructsymbols(symbol *root,int level)
50805080
/* check that the assigned value was used, but don't show the warning
50815081
* if the variable is completely unused (we already have warning 203 for that) */
50825082
if ((sym->usage & (uASSIGNED | uREAD | uWRITTEN))==(uASSIGNED | uREAD | uWRITTEN)
5083-
&& sym->vclass!=sSTATIC)
5083+
&& sym->vclass!=sSTATIC) {
5084+
errorset(sSETPOS,sym->lnumber);
50845085
error(204,sym->name); /* symbol is assigned a value that is never used */
5086+
errorset(sSETPOS,-1);
5087+
} /* if */
50855088
} /* if */
50865089
sym=sym->next;
50875090
} /* while */

source/compiler/tests/warning_240.meta

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
'errors': """
44
warning_240.pwn(11) : warning 240: previously assigned value is never used (symbol "local_var")
55
warning_240.pwn(12) : warning 240: previously assigned value is never used (symbol "local_var")
6-
warning_240.pwn(18) : warning 204: symbol is assigned a value that is never used: "local_var"
6+
warning_240.pwn(14) : warning 204: symbol is assigned a value that is never used: "local_var"
7+
warning_240.pwn(23) : warning 240: previously assigned value is never used (symbol "local_static_var")
78
warning_240.pwn(24) : warning 240: previously assigned value is never used (symbol "local_static_var")
8-
warning_240.pwn(25) : warning 240: previously assigned value is never used (symbol "local_static_var")
9-
warning_240.pwn(51) : warning 240: previously assigned value is never used (symbol "arg")
10-
warning_240.pwn(51) : warning 204: symbol is assigned a value that is never used: "arg"
9+
warning_240.pwn(50) : warning 240: previously assigned value is never used (symbol "arg")
10+
warning_240.pwn(50) : warning 204: symbol is assigned a value that is never used: "arg"
1111
"""
1212
}

source/compiler/tests/warning_240.pwn

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,20 @@ test_local()
88
{
99
new local_var;
1010
local_var = 1;
11-
local_var = 2; // warning
12-
local_var = 3; // warning
11+
local_var = 2; // warning 240
12+
local_var = 3; // warning 240
1313
#pragma unused local_var
14-
local_var = 4;
14+
local_var = 4; // warning 204
1515
new local_var2 = 0;
1616
local_var2 = 1;
1717
#pragma unused local_var2
18-
} // warning (value assigned to "local_var"
19-
// wasn't used upon symbol destruction)
18+
}
2019

2120
test_local_static()
2221
{
2322
static local_static_var = 0;
24-
local_static_var = 1; // warning
25-
local_static_var = 2; // warning
23+
local_static_var = 1; // warning 240
24+
local_static_var = 2; // warning 240
2625
#pragma unused local_static_var
2726
local_static_var = 4;
2827
}
@@ -48,7 +47,7 @@ test_global_static()
4847
test_arg(arg)
4948
{
5049
arg = 0;
51-
arg = 1; // warning (240, 204)
50+
arg = 1; // warning 240, warning 204
5251
}
5352

5453
main()

0 commit comments

Comments
 (0)