Make using local IDs in @if directives an error.

Addresses BIT-1296.
This commit is contained in:
Jon Siwek 2014-12-02 12:30:46 -06:00
parent 379593c7fd
commit cdbe459f20
4 changed files with 94 additions and 3 deletions

View file

@ -0,0 +1,41 @@
# @TEST-EXEC-FAIL: bro -b %INPUT >out 2>&1
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out
function foo(c: count): bool
{ return c == 42 ? T : F; }
global TRUE_CONDITION = T;
event bro_init()
{
local xyz = 0;
local local_true_condition = T;
@if ( F )
xyz += 1;
@endif
@if ( foo(0) )
xyz += 1;
@endif
@if ( T && foo(42) )
xyz += 2;
@endif
xyz = 0;
@if ( F && foo(xyz) )
xyz += 1;
@else
xyz += 2;
@endif
xyz = 0;
@if ( T && TRUE_CONDITION && local_true_condition )
xyz += 1;
@else
xyz += 2;
@endif
}