patch 7.4.2106
Problem:    Clang warns about missing field in initializer.
Solution:   Define COMMA and use it.  (Kazunobu Kuriyama)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 7d8196c..2afa5e7 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -4008,6 +4008,7 @@
 	    }
 	    vim_free(new_name);
 	    au_new_curbuf.br_buf = NULL;
+	    au_new_curbuf.br_buf_free_count = 0;
 #endif
 	}
 
@@ -4389,6 +4390,7 @@
 	    name == NULL ? (char_u *)"" : name);
     vim_free(name);
     au_new_curbuf.br_buf = NULL;
+    au_new_curbuf.br_buf_free_count = 0;
 }
 #endif
 
diff --git a/src/globals.h b/src/globals.h
index a3d6b4e..4e5f20d 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -384,7 +384,7 @@
 
 /* When deleting the current buffer, another one must be loaded.  If we know
  * which one is preferred, au_new_curbuf is set to it */
-EXTERN bufref_T	au_new_curbuf INIT(= {NULL});
+EXTERN bufref_T	au_new_curbuf INIT(= {NULL COMMA 0});
 
 /* When deleting a buffer/window and autocmd_busy is TRUE, do not free the
  * buffer/window. but link it in the list starting with
@@ -1355,11 +1355,8 @@
 #ifdef BACKSLASH_IN_FILENAME
 EXTERN char	psepc INIT(= '\\');	/* normal path separator character */
 EXTERN char	psepcN INIT(= '/');	/* abnormal path separator character */
-EXTERN char	pseps[2]		/* normal path separator string */
-# ifdef DO_INIT
-			= {'\\', 0}
-# endif
-			;
+/* normal path separator string */
+EXTERN char	pseps[2] = INIT(= {'\\' COMMA 0});
 #endif
 
 #ifdef FEAT_VIRTUALEDIT
diff --git a/src/version.c b/src/version.c
index 79616c6..cdcb426 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2106,
+/**/
     2105,
 /**/
     2104,
diff --git a/src/vim.h b/src/vim.h
index e2d4cc4..498078a 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1765,6 +1765,7 @@
 # ifndef INIT
 #  define INIT(x) x
 #  define DO_INIT
+#  define COMMA ,
 # endif
 #endif