patch 8.2.3634: error for already defined function uses wrong line number

Problem:    Error for already defined function uses wrong line number.
Solution:   Set SOURCING_LNUM before giving the error message. (closes #9085)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index c8b821e..34f84f2 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -741,7 +741,18 @@
       enddef
       defcompile
   END
-  CheckScriptFailure(lines, "E1073:")
+  CheckScriptFailure(lines, "E1073:", 1)
+
+  lines =<< trim END
+      vim9script
+      def Func()
+        echo 'script'
+      enddef
+      def Func()
+        echo 'script'
+      enddef
+  END
+  CheckScriptFailure(lines, "E1073:", 5)
 enddef
 
 def DefListAll()
diff --git a/src/userfunc.c b/src/userfunc.c
index 95d9c4a..602d3b7 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -4256,6 +4256,7 @@
 			&& (fp->uf_script_ctx.sc_sid != current_sctx.sc_sid
 			  || fp->uf_script_ctx.sc_seq == current_sctx.sc_seq)))
 	    {
+		SOURCING_LNUM = sourcing_lnum_top;
 		if (vim9script)
 		    emsg_funcname(e_name_already_defined_str, name);
 		else
diff --git a/src/version.c b/src/version.c
index b53524f..fbbc961 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3634,
+/**/
     3633,
 /**/
     3632,