patch 8.2.3740: memory left allocated on exit when using Tcl

Problem:    Memory left allocated on exit when using Tcl.
Solution:   Call Tcl_Finalize().
diff --git a/src/alloc.c b/src/alloc.c
index 38b452c..84a1124 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -574,6 +574,9 @@
 # ifdef FEAT_GUI_GTK
     gui_mch_free_all();
 # endif
+# ifdef FEAT_TCL
+    vim_tcl_finalize();
+# endif
     clear_hl_tables();
 
     vim_free(IObuff);
diff --git a/src/if_tcl.c b/src/if_tcl.c
index f3f4b07..4838e31 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -248,6 +248,14 @@
 #endif
 }
 
+#if defined(EXITFREE) || defined(PROTO)
+    void
+vim_tcl_finalize(void)
+{
+    Tcl_Finalize();
+}
+#endif
+
 #if defined(DYNAMIC_TCL) || defined(PROTO)
 
 static int stubs_initialized = FALSE;
diff --git a/src/proto/if_tcl.pro b/src/proto/if_tcl.pro
index b572fb8..11ca7a2 100644
--- a/src/proto/if_tcl.pro
+++ b/src/proto/if_tcl.pro
@@ -1,5 +1,6 @@
 /* if_tcl.c */
 void vim_tcl_init(char *arg);
+void vim_tcl_finalize(void);
 int tcl_enabled(int verbose);
 void tcl_end(void);
 void ex_tcl(exarg_T *eap);
diff --git a/src/version.c b/src/version.c
index 338b8a4..6e1e30a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3740,
+/**/
     3739,
 /**/
     3738,