mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 18:48:20 +00:00
Fix local const variables can be modified via loops
This commit is contained in:
parent
1d2c12e980
commit
3312e19d5b
1 changed files with 15 additions and 0 deletions
15
src/parse.y
15
src/parse.y
|
@ -1911,6 +1911,9 @@ for_head:
|
||||||
{
|
{
|
||||||
if ( loop_var->IsGlobal() )
|
if ( loop_var->IsGlobal() )
|
||||||
loop_var->Error("global variable used in for loop");
|
loop_var->Error("global variable used in for loop");
|
||||||
|
|
||||||
|
if ( loop_var->IsConst() )
|
||||||
|
loop_var->Error("constant used in for loop");
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
|
@ -1945,6 +1948,9 @@ for_head:
|
||||||
{
|
{
|
||||||
if ( key_var->IsGlobal() )
|
if ( key_var->IsGlobal() )
|
||||||
key_var->Error("global variable used in for loop");
|
key_var->Error("global variable used in for loop");
|
||||||
|
|
||||||
|
if ( key_var->IsConst() )
|
||||||
|
key_var->Error("constant used in for loop");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
key_var = install_ID($3, module, false, false);
|
key_var = install_ID($3, module, false, false);
|
||||||
|
@ -1953,6 +1959,9 @@ for_head:
|
||||||
{
|
{
|
||||||
if ( val_var->IsGlobal() )
|
if ( val_var->IsGlobal() )
|
||||||
val_var->Error("global variable used in for loop");
|
val_var->Error("global variable used in for loop");
|
||||||
|
|
||||||
|
if ( val_var->IsConst() )
|
||||||
|
val_var->Error("constant used in for loop");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
val_var = install_ID($5, module, false, false);
|
val_var = install_ID($5, module, false, false);
|
||||||
|
@ -1975,6 +1984,9 @@ for_head:
|
||||||
{
|
{
|
||||||
if ( val_var->IsGlobal() )
|
if ( val_var->IsGlobal() )
|
||||||
val_var->Error("global variable used in for loop");
|
val_var->Error("global variable used in for loop");
|
||||||
|
|
||||||
|
if ( val_var->IsConst() )
|
||||||
|
val_var->Error("constant used in for loop");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
val_var = install_ID($7, module, false, false);
|
val_var = install_ID($7, module, false, false);
|
||||||
|
@ -2004,6 +2016,9 @@ local_id:
|
||||||
{
|
{
|
||||||
if ( $$->IsGlobal() )
|
if ( $$->IsGlobal() )
|
||||||
$$->Error("already a global identifier");
|
$$->Error("already a global identifier");
|
||||||
|
|
||||||
|
if ( $$->IsConst() )
|
||||||
|
$$->Error("already a const identifier");
|
||||||
delete [] $1;
|
delete [] $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue