diff --git a/src/function/scalar/operators/bitwise.cpp b/src/function/scalar/operators/bitwise.cpp index d767423c680..bb75a8705aa 100644 --- a/src/function/scalar/operators/bitwise.cpp +++ b/src/function/scalar/operators/bitwise.cpp @@ -65,7 +65,7 @@ void BitwiseXorFun::RegisterFunction(BuiltinFunctions &set) { //===--------------------------------------------------------------------===// struct BitwiseShiftLeftOperator { template static inline TR Operation(TA left, TB right) { - return left << right; + return right < 0 ? 0 : left << right; } }; @@ -83,7 +83,7 @@ void LeftShiftFun::RegisterFunction(BuiltinFunctions &set) { //===--------------------------------------------------------------------===// struct BitwiseShiftRightOperator { template static inline TR Operation(TA left, TB right) { - return left >> right; + return right < 0 ? 0 : left >> right; } };