patch 7.4.1940
Problem:    "gd" hangs in some situations. (Eric Biggers)
Solution:   Remove the SEARCH_START flag when looping.  Add a test.
diff --git a/src/testdir/test_goto.vim b/src/testdir/test_goto.vim
index fb8f190..2afd96b 100644
--- a/src/testdir/test_goto.vim
+++ b/src/testdir/test_goto.vim
@@ -1,6 +1,6 @@
 " Test commands that jump somewhere.
 
-func Test_geedee()
+func Test_geeDEE()
   new
   call setline(1, ["Filename x;", "", "int Filename", "int func() {", "Filename y;"])
   /y;/
@@ -8,3 +8,13 @@
   call assert_equal(1, line('.'))
   quit!
 endfunc
+
+func Test_gee_dee()
+  new
+  call setline(1, ["int x;", "", "int func(int x)", "{", "  return x;", "}"])
+  /return/
+  normal $hgd
+  call assert_equal(3, line('.'))
+  call assert_equal(14, col('.'))
+  quit!
+endfunc