diff --git a/configure b/configure
index 4d039705b6a7642872b05a03ae35d1aa2d867f1e..6d8e85a7cfa6785c36d8a610a352302ef1434a54 100755
--- a/configure
+++ b/configure
@@ -13694,6 +13694,31 @@ fi
 $as_echo "$ac_cv_cflags__Wunused_but_set_parameter" >&6; }
 if test "x$ac_cv_cflags__Wunused_but_set_parameter" = xyes; then :
   EXTRACFLAGS="$EXTRACFLAGS -Wunused-but-set-parameter"
+fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wvla" >&5
+$as_echo_n "checking whether the compiler supports -Wvla... " >&6; }
+if ${ac_cv_cflags__Wvla+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_wine_try_cflags_saved=$CFLAGS
+CFLAGS="$CFLAGS -Wvla"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int main(int argc, char **argv) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_cflags__Wvla=yes
+else
+  ac_cv_cflags__Wvla=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+CFLAGS=$ac_wine_try_cflags_saved
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wvla" >&5
+$as_echo "$ac_cv_cflags__Wvla" >&6; }
+if test "x$ac_cv_cflags__Wvla" = xyes; then :
+  EXTRACFLAGS="$EXTRACFLAGS -Wvla"
 fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wwrite-strings" >&5
 $as_echo_n "checking whether the compiler supports -Wwrite-strings... " >&6; }
diff --git a/configure.ac b/configure.ac
index 97874c48f2577323279e72a0e003849eb5059933..2b56c7d7938cabe80ca4e347052815760c877c6e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1780,6 +1780,7 @@ then
   WINE_TRY_CFLAGS([-Wstrict-prototypes])
   WINE_TRY_CFLAGS([-Wtype-limits])
   WINE_TRY_CFLAGS([-Wunused-but-set-parameter])
+  WINE_TRY_CFLAGS([-Wvla])
   WINE_TRY_CFLAGS([-Wwrite-strings])
 
   dnl Check for noisy string.h