Mercurial > vim
diff src/eval.c @ 28968:3043a3e2ef95 v8.2.5006
patch 8.2.5006: asan warns for undefined behavior
Commit: https://github.com/vim/vim/commit/68e64d2c1735f2a39afa8a0475ae29bedb116684
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun May 22 22:07:52 2022 +0100
patch 8.2.5006: asan warns for undefined behavior
Problem: Asan warns for undefined behavior.
Solution: Cast the shifted value to unsigned.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 22 May 2022 23:15:03 +0200 |
parents | 8973f2f00872 |
children | 45c182c4f7e9 |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -3089,7 +3089,7 @@ eval5(char_u **arg, typval_T *rettv, eva rettv->vval.v_number = 0; else if (type == EXPR_LSHIFT) rettv->vval.v_number = - rettv->vval.v_number << var2.vval.v_number; + (uvarnumber_T)rettv->vval.v_number << var2.vval.v_number; else rettv->vval.v_number = (uvarnumber_T)rettv->vval.v_number >> var2.vval.v_number;