changeset 30053:f5cbf8a4043d v9.0.0364

patch 9.0.0364: clang static analyzer gives warnings Commit: https://github.com/vim/vim/commit/c99e182e1fb54e39540d25d0ccd8dcdde25bb96c Author: Yegappan Lakshmanan <yegappan@yahoo.com> 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)
author Bram Moolenaar <Bram@vim.org>
date Sat, 03 Sep 2022 12:00:05 +0200
parents 9577d585ab58
children de1d42b33f08
files src/evalvars.c src/float.c src/highlight.c src/mbyte.c src/ops.c src/tag.c src/version.c src/vim9compile.c
diffstat 8 files changed, 15 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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);
--- 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);
 
--- 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];
--- 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);
--- 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.
--- 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,
--- 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)
 		{