# HG changeset patch # User Bram Moolenaar # Date 1586726103 -7200 # Node ID 4895e5cf17460d94ddebe6baee988558742825d1 # Parent 3f5745e289ec4cac3b8ce476391eb9f7ce12414b patch 8.2.0566: Vim9: variable can be used uninitialized Commit: https://github.com/vim/vim/commit/1a2f4bf6c80d750615f19c34e5baddd21310c9c9 Author: Bram Moolenaar Date: Sun Apr 12 23:09:25 2020 +0200 patch 8.2.0566: Vim9: variable can be used uninitialized Problem: Vim9: variable can be used uninitialized. Solution: Jump to after where variable is used. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 566, +/**/ 565, /**/ 564, diff --git a/src/vim9execute.c b/src/vim9execute.c --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -524,7 +524,7 @@ call_def_function( else argc -= vararg_count; if (exe_newlist(vararg_count, &ectx) == FAIL) - goto failed; + goto failed_early; if (defcount > 0) // Move varargs list to below missing default arguments. *STACK_TV_BOT(defcount- 1) = *STACK_TV_BOT(-1); @@ -1773,7 +1773,7 @@ failed: // When failed need to unwind the call stack. while (ectx.ec_frame != initial_frame_ptr) func_return(&ectx); - +failed_early: for (idx = 0; idx < ectx.ec_stack.ga_len; ++idx) clear_tv(STACK_TV(idx)); vim_free(ectx.ec_stack.ga_data);