patch 8.2.0459: cannot check if a function name is correct

Problem:    Cannot check if a function name is correct.
Solution:   Add "?funcname" to exists().
diff --git a/src/testdir/check.vim b/src/testdir/check.vim
index d01dd81..22c33c0 100644
--- a/src/testdir/check.vim
+++ b/src/testdir/check.vim
@@ -25,9 +25,12 @@
   endif
 endfunc
 
-" Command to check for the presence of a function.
+" Command to check for the presence of a built-in function.
 command -nargs=1 CheckFunction call CheckFunction(<f-args>)
 func CheckFunction(name)
+  if !exists('?' .. a:name)
+    throw 'Checking for non-existent function ' .. a:name
+  endif
   if !exists('*' .. a:name)
     throw 'Skipped: ' .. a:name .. ' function missing'
   endif
diff --git a/src/testdir/test_exists.vim b/src/testdir/test_exists.vim
index 62c6619..8a30133 100644
--- a/src/testdir/test_exists.vim
+++ b/src/testdir/test_exists.vim
@@ -92,6 +92,11 @@
   " Function that may be created by script autoloading
   call assert_equal(0, exists('*footest#F'))
 
+  call assert_equal(has('float'), exists('*acos'))
+  call assert_equal(1, exists('?acos'))
+  call assert_equal(has('win32'), exists('*debugbreak'))
+  call assert_equal(1, exists('?debugbreak'))
+
   " Valid internal command (full match)
   call assert_equal(2, exists(':edit'))
   " Valid internal command (full match) with garbage