patch 9.0.0556: leaking memory with nested functions

Problem:    Leaking memory with nested functions.
Solution:   Free saved pointer.
diff --git a/src/eval.c b/src/eval.c
index bdf0389..d369df5 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -400,6 +400,7 @@
 		    // need to keep it around.
 		    --etga->ga_len;
 		    *eap->cmdlinep = ((char_u **)etga->ga_data)[etga->ga_len];
+		    vim_free(evalarg->eval_tofree);
 		}
 		else
 		    *eap->cmdlinep = evalarg->eval_tofree;
diff --git a/src/version.c b/src/version.c
index 617b76c..8df30bd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    556,
+/**/
     555,
 /**/
     554,