Make the previous commit actually work, and document the change.
diff --git a/NEWS b/NEWS
index 023880b..9ffba6f 100644
--- a/NEWS
+++ b/NEWS
@@ -27,10 +27,12 @@
 
 *** AC_C_RESTRICT no longer triggers -Wkeyword-macro warnings from GCC 16.
 
-*** AC_CHECK_FUNC and related macros now work better with Clang.
+*** AC_CHECK_FUNC and related macros now work better with Clang and MSVC.
 
   Arguments like CFLAGS="-Wno-incompatible-library-redeclaration" are
   no longer needed when configuring with Clang in pedantic mode.
+  Similarly, arguments like CFLAGS="-Oi-" are no longer needed when
+  configuring with MSVC with enabled optimizations.
 
 * Noteworthy changes in release 2.73 (2026-03-20) [release]
 
diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
index 15f0972..f3a1caa 100644
--- a/lib/autoconf/c.m4
+++ b/lib/autoconf/c.m4
@@ -172,9 +172,9 @@
 #ifdef _MSC_VER
 
 /* Tell MSVC to link the function without checking its type.  */
-# ifdef _M_IX86
+# ifdef _M_IX86 /* x86 */
 #  pragma comment (linker, "/include:_$1")
-# else
+# else /* x86_64, arm, arm64 */
 #  pragma comment (linker, "/include:$1")
 # endif
 
@@ -187,15 +187,19 @@
 extern "C"
 # endif
 char $1 (void);
-#endif
-
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined __stub_$1 || defined __stub___$1
+# if defined __stub_$1 || defined __stub___$1
 choke me
+# endif
+
 #endif
-], [return $1 ();])])
+], [
+#ifndef _MSC_VER
+return $1 ();
+#endif
+])])
 
 
 # AC_LANG_BOOL_COMPILE_TRY(C)(PROLOGUE, EXPRESSION)