patch 8.2.5006: asan warns for undefined behavior
Problem: Asan warns for undefined behavior.
Solution: Cast the shifted value to unsigned.
diff --git a/src/vim9expr.c b/src/vim9expr.c
index 6fb32cb..a52f2c7 100644
--- a/src/vim9expr.c
+++ b/src/vim9expr.c
@@ -2716,7 +2716,8 @@
if (tv2->vval.v_number > MAX_LSHIFT_BITS)
tv1->vval.v_number = 0;
else if (type == EXPR_LSHIFT)
- tv1->vval.v_number = tv1->vval.v_number << tv2->vval.v_number;
+ tv1->vval.v_number =
+ (uvarnumber_T)tv1->vval.v_number << tv2->vval.v_number;
else
tv1->vval.v_number =
(uvarnumber_T)tv1->vval.v_number >> tv2->vval.v_number;