btest portability fix

address review comment about shifting corner-case
This commit is contained in:
Vern Paxson 2022-08-02 19:36:25 -07:00
parent ea3d25b380
commit c10885e5f9
2 changed files with 4 additions and 4 deletions

View file

@ -963,10 +963,10 @@ ValPtr BinaryExpr::Fold(Val* v1, Val* v2) const
{ {
if ( is_integral ) if ( is_integral )
{ {
if ( i1 < 1 ) if ( i1 < 0 )
RuntimeError("left shifting a negative number is undefined"); RuntimeError("left shifting a negative number is undefined");
i3 = i1 << i2; i3 = i1 << static_cast<zeek_uint_t>(i2);
} }
else if ( is_unsigned ) else if ( is_unsigned )
@ -979,7 +979,7 @@ ValPtr BinaryExpr::Fold(Val* v1, Val* v2) const
case EXPR_RSHIFT: case EXPR_RSHIFT:
{ {
if ( is_integral ) if ( is_integral )
i3 = i1 >> i2; i3 = i1 >> static_cast<zeek_uint_t>(i2);
else if ( is_unsigned ) else if ( is_unsigned )
u3 = u1 >> u2; u3 = u1 >> u2;

View file

@ -8,7 +8,7 @@ cmds = string_cat(cmds, "\nprint \"foobar\";");
# If we're using generated C++, turn that off for the pipe execution, # If we're using generated C++, turn that off for the pipe execution,
# as otherwise we'll get a complaint that there's no corresponding # as otherwise we'll get a complaint that there's no corresponding
# C++ bodies found for that zeek instance. # C++ bodies found for that zeek instance.
if ( piped_exec("export -n ZEEK_USE_CPP; zeek", cmds) != T ) if ( piped_exec("unset ZEEK_USE_CPP; zeek", cmds) != T )
exit(1); exit(1);
# Test null output. # Test null output.