updated for version 7.0134
diff --git a/src/eval.c b/src/eval.c
index 3cb3bd7..a7fc6b3 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -11944,6 +11944,14 @@
     rettv->vval.v_number = lnum;
 }
 
+#ifdef HAVE_STDARG_H
+/* This dummy va_list is here because:
+ * - passing a NULL pointer doesn't work when va_list isn't a pointer
+ * - locally in the function results in a "used before set" warning
+ * - using va_start() to initialize it gives "function with fixed args" error */
+static va_list	ap;
+#endif
+
 /*
  * "printf()" function
  */
@@ -11961,10 +11969,6 @@
 	char_u	*s;
 	int	saved_did_emsg = did_emsg;
 	char	*fmt;
-	va_list	ap; /* dummy */
-
-	/* Avoid warning for "ap" used before set; it's unused. */
-	va_start(ap, rettv);
 
 	/* Get the required length, allocate the buffer and do it for real. */
 	did_emsg = FALSE;