# HG changeset patch # User Bram Moolenaar # Date 1662199205 -7200 # Node ID f5cbf8a4043db5c2aaf705583dd3de7f659ed2ee # Parent 9577d585ab58a2af0321dcc076513f53e0dd348f patch 9.0.0364: clang static analyzer gives warnings Commit: https://github.com/vim/vim/commit/c99e182e1fb54e39540d25d0ccd8dcdde25bb96c Author: Yegappan Lakshmanan Date: Sat Sep 3 10:52:24 2022 +0100 patch 9.0.0364: clang static analyzer gives warnings Problem: Clang static analyzer gives warnings. Solution: Avoid the warnings. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/11043) diff --git a/src/evalvars.c b/src/evalvars.c --- a/src/evalvars.c +++ b/src/evalvars.c @@ -1089,7 +1089,6 @@ ex_let(exarg_T *eap) { // +=, /=, etc. require an existing variable semsg(_(e_cannot_use_operator_on_new_variable), eap->arg); - i = FAIL; } else if (vim_strchr((char_u *)"+-*/%.", *expr) != NULL) { @@ -1112,7 +1111,6 @@ ex_let(exarg_T *eap) vim_strncpy(op, expr - len, len); semsg(_(e_white_space_required_before_and_after_str_at_str), op, argend); - i = FAIL; } if (eap->skip) diff --git a/src/float.c b/src/float.c --- a/src/float.c +++ b/src/float.c @@ -54,12 +54,11 @@ string2float( if (skip_quotes && vim_strchr((char_u *)s, '\'') != NULL) { char_u buf[100]; - char_u *p = buf; + char_u *p; int quotes = 0; vim_strncpy(buf, (char_u *)s, 99); - p = buf; - for (;;) + for (p = buf; ; p = skipdigits(p)) { // remove single quotes between digits, not in the exponent if (*p == '\'') @@ -69,7 +68,6 @@ string2float( } if (!vim_isdigit(*p)) break; - p = skipdigits(p); } s = (char *)buf; f = strtod(s, &s); diff --git a/src/highlight.c b/src/highlight.c --- a/src/highlight.c +++ b/src/highlight.c @@ -4515,7 +4515,7 @@ hlg_add_or_update(dict_T *dict) # endif p = add_attr_and_value(p, (char_u *)" guifg=", 7, guifg); p = add_attr_and_value(p, (char_u *)" guibg=", 7, guibg); - p = add_attr_and_value(p, (char_u *)" guisp=", 7, guisp); + (void)add_attr_and_value(p, (char_u *)" guisp=", 7, guisp); do_highlight(hlsetBuf, forceit, FALSE); diff --git a/src/mbyte.c b/src/mbyte.c --- a/src/mbyte.c +++ b/src/mbyte.c @@ -5617,7 +5617,6 @@ f_setcellwidths(typval_T *argvars, typva } // Store the items in the new table. - item = 0; for (item = 0; item < l->lv_len; ++item) { listitem_T *lili = ptrs[item]; diff --git a/src/ops.c b/src/ops.c --- a/src/ops.c +++ b/src/ops.c @@ -1282,11 +1282,11 @@ op_tilde(oparg_T *oap) #ifdef FEAT_NETBEANS_INTG if (netbeans_active() && one_change) { - char_u *ptr = ml_get_buf(curbuf, pos.lnum, FALSE); + char_u *ptr; netbeans_removed(curbuf, pos.lnum, bd.textcol, (long)bd.textlen); - // get the line again, it may have been flushed + // get the line now, it may have been flushed ptr = ml_get_buf(curbuf, pos.lnum, FALSE); netbeans_inserted(curbuf, pos.lnum, bd.textcol, &ptr[bd.textcol], bd.textlen); diff --git a/src/tag.c b/src/tag.c --- a/src/tag.c +++ b/src/tag.c @@ -4368,7 +4368,12 @@ get_tags(list_T *list, char_u *pat, char { for (i = 0; i < num_matches; ++i) { - parse_match(matches[i], &tp); + if (parse_match(matches[i], &tp) == FAIL) + { + vim_free(matches[i]); + continue; + } + is_static = test_for_static(&tp); // Skip pseudo-tag lines. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -708,6 +708,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 364, +/**/ 363, /**/ 362, diff --git a/src/vim9compile.c b/src/vim9compile.c --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -2243,9 +2243,9 @@ compile_assignment(char_u *arg, exarg_T r = compile_expr0_ext(&p, cctx, &is_const); if (lhs.lhs_new_local) ++cctx->ctx_locals.ga_len; - if (r == FAIL) - goto theend; } + if (r == FAIL) + goto theend; } else if (semicolon && var_idx == var_count - 1) {