mirror of
https://github.com/neovim/neovim.git
synced 2025-09-17 16:58:17 +00:00
*: Disable UBSAN for VimL arithmetic implementation
After merging +num64, the 64-bit sanitizer builds show that Vim doesn't buffer the user from C's UB in signed arithmetic. Upstream doesn't appear to be [interested] in fixing the issue, so suppress UBSAN until someone decides to fix the problem. N.B., the problem existed before but went unnoticed since the sanitizer builds weren't being run in 32-bit mode. [interested]: https://groups.google.com/d/topic/vim_dev/_tqf8eQy5eA/discussion
This commit is contained in:
@@ -3934,7 +3934,7 @@ eval6 (
|
|||||||
typval_T *rettv,
|
typval_T *rettv,
|
||||||
int evaluate,
|
int evaluate,
|
||||||
int want_string /* after "." operator */
|
int want_string /* after "." operator */
|
||||||
)
|
) FUNC_ATTR_NO_SANITIZE_UNDEFINED
|
||||||
{
|
{
|
||||||
typval_T var2;
|
typval_T var2;
|
||||||
int op;
|
int op;
|
||||||
|
@@ -25,7 +25,7 @@ char *e_listidx = N_("E684: list index out of range: %" PRId64);
|
|||||||
/// @return OK or FAIL.
|
/// @return OK or FAIL.
|
||||||
int eexe_mod_op(typval_T *const tv1, const typval_T *const tv2,
|
int eexe_mod_op(typval_T *const tv1, const typval_T *const tv2,
|
||||||
const char *const op)
|
const char *const op)
|
||||||
FUNC_ATTR_NONNULL_ALL
|
FUNC_ATTR_NONNULL_ALL FUNC_ATTR_NO_SANITIZE_UNDEFINED
|
||||||
{
|
{
|
||||||
// Can't do anything with a Funcref, a Dict or special value on the right.
|
// Can't do anything with a Funcref, a Dict or special value on the right.
|
||||||
if (tv2->v_type != VAR_FUNC && tv2->v_type != VAR_DICT) {
|
if (tv2->v_type != VAR_FUNC && tv2->v_type != VAR_DICT) {
|
||||||
|
Reference in New Issue
Block a user