bpo-40653: Move _dirnameW out of #ifdef HAVE_SYMLINK/#endif (GH-20144)

diff --git a/Misc/NEWS.d/next/Build/2020-05-17-03-33-00.bpo-40653.WI8UGn.rst b/Misc/NEWS.d/next/Build/2020-05-17-03-33-00.bpo-40653.WI8UGn.rst
new file mode 100644
index 0000000..1e6c5cb
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2020-05-17-03-33-00.bpo-40653.WI8UGn.rst
@@ -0,0 +1 @@
+Move _dirnameW out of HAVE_SYMLINK to fix a potential compiling issue.
\ No newline at end of file
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 2ddf30d..ddff283 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -8156,8 +8156,6 @@
 }
 #endif /* defined(HAVE_READLINK) || defined(MS_WINDOWS) */
 
-#ifdef HAVE_SYMLINK
-
 #if defined(MS_WINDOWS)
 
 /* Remove the last portion of the path - return 0 on success */
@@ -8180,6 +8178,12 @@
     return 0;
 }
 
+#endif
+
+#ifdef HAVE_SYMLINK
+
+#if defined(MS_WINDOWS)
+
 /* Is this path absolute? */
 static int
 _is_absW(const WCHAR *path)