comparison src/vim9execute.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 ac102d0fb50f
comparison
equal deleted inserted replaced
28967:13d66390ef26 28968:3043a3e2ef95
4089 case EXPR_SMALLER: res = arg1 < arg2; break; 4089 case EXPR_SMALLER: res = arg1 < arg2; break;
4090 case EXPR_SEQUAL: res = arg1 <= arg2; break; 4090 case EXPR_SEQUAL: res = arg1 <= arg2; break;
4091 case EXPR_LSHIFT: if (arg2 > MAX_LSHIFT_BITS) 4091 case EXPR_LSHIFT: if (arg2 > MAX_LSHIFT_BITS)
4092 res = 0; 4092 res = 0;
4093 else 4093 else
4094 res = arg1 << arg2; 4094 res = (uvarnumber_T)arg1 << arg2;
4095 break; 4095 break;
4096 case EXPR_RSHIFT: if (arg2 > MAX_LSHIFT_BITS) 4096 case EXPR_RSHIFT: if (arg2 > MAX_LSHIFT_BITS)
4097 res = 0; 4097 res = 0;
4098 else 4098 else
4099 res = (uvarnumber_T)arg1 >> arg2; 4099 res = (uvarnumber_T)arg1 >> arg2;