Mercurial > vim
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; |