Make the -fvisibility-inlines-hidden check more thorough in a hopeless attempt to fix mingw cross-compiles.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147191 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/autoconf/m4/visibility_inlines_hidden.m4 b/autoconf/m4/visibility_inlines_hidden.m4
index 42ddbe9..ee3d61b 100644
--- a/autoconf/m4/visibility_inlines_hidden.m4
+++ b/autoconf/m4/visibility_inlines_hidden.m4
@@ -9,7 +9,9 @@
 [ AC_LANG_PUSH([C++])
   oldcxxflags="$CXXFLAGS"
   CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
-  AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+    [template <typename T> struct X { inline void f() {} };],
+    [X<int>().f();])],
     [llvm_cv_cxx_visibility_inlines_hidden=yes],[llvm_cv_cxx_visibility_inlines_hidden=no])
   CXXFLAGS="$oldcxxflags"
   AC_LANG_POP([C++])
diff --git a/configure b/configure
index ad20b85..62b2d1c 100755
--- a/configure
+++ b/configure
@@ -20993,11 +20993,11 @@
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
+template <typename T> struct X { inline void f() {} };
 int
 main ()
 {
-
+X<int>().f();
   ;
   return 0;
 }