diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c15a1a43e6c..a63e7745536 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2018-12-23  Martin Sebor  <msebor@redhat.com>
+	    Jeff Law  <law@redhat.com>
+
+	* builtins.c (unterminated_array): Use empty brace initialization
+	for c_strlen_data.
+	(c_strlen, expand_builtin_strnlen): Likewise.
+	(expand_builtin_stpcpy_1, fold_builtin_strlen): Likewise.
+	* gimple-fold.c (get_range_strlen): Likewise.
+	(gimple_fold_builtin_stpcpy): Likewise.
+	* gimple-ssa-sprintf.c (get_string_length): Likewise.
+
 2018-12-23  Alan Modra  <amodra@gmail.com>
 
 	PR 88346
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 669e548706f..4a82f58d5f4 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -575,8 +575,7 @@ unterminated_array (tree exp, tree *size /* = NULL */, bool *exact /* = NULL */)
 {
   /* C_STRLEN will return NULL and set DECL in the info
      structure if EXP references a unterminated array.  */
-  c_strlen_data data;
-  memset (&data, 0, sizeof (c_strlen_data));
+  c_strlen_data data = { };
   tree len = c_strlen (exp, 1, &data);
   if (len == NULL_TREE && data.len && data.decl)
      {
@@ -647,8 +646,7 @@ c_strlen (tree src, int only_value, c_strlen_data *data, unsigned eltsize)
   /* If we were not passed a DATA pointer, then get one to a local
      structure.  That avoids having to check DATA for NULL before
      each time we want to use it.  */
-  c_strlen_data local_strlen_data;
-  memset (&local_strlen_data, 0, sizeof (c_strlen_data));
+  c_strlen_data local_strlen_data = { };
   if (!data)
     data = &local_strlen_data;
 
@@ -3085,8 +3083,7 @@ expand_builtin_strnlen (tree exp, rtx target, machine_mode target_mode)
 
   /* FIXME: Change c_strlen() to return sizetype instead of ssizetype
      so these conversions aren't necessary.  */
-  c_strlen_data data;
-  memset (&data, 0, sizeof (c_strlen_data));
+  c_strlen_data data { };
   tree len = c_strlen (src, 0, &data, 1);
   if (len)
     len = fold_convert_loc (loc, TREE_TYPE (bound), len);
@@ -4086,8 +4083,7 @@ expand_builtin_stpcpy_1 (tree exp, rtx target, machine_mode mode)
 	 compile-time, not an expression containing a string.  This is
 	 because the latter will potentially produce pessimized code
 	 when used to produce the return value.  */
-      c_strlen_data data;
-      memset (&data, 0, sizeof (c_strlen_data));
+      c_strlen_data data = { };
       if (!c_getstr (src, NULL)
 	  || !(len = c_strlen (src, 0, &data, 1)))
 	return expand_movstr (dst, src, target,
@@ -8571,8 +8567,7 @@ fold_builtin_strlen (location_t loc, tree type, tree arg)
     return NULL_TREE;
   else
     {
-      c_strlen_data data;
-      memset (&data, 0, sizeof (c_strlen_data));
+      c_strlen_data data = { };
       tree len = c_strlen (arg, 0, &data);
 
       if (len)
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 67c8cfa4f64..af509740bb3 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -1335,8 +1335,7 @@ get_range_strlen (tree arg, tree length[2], bitmap *visited, int type,
 	}
       else
 	{
-	  c_strlen_data data;
-	  memset (&data, 0, sizeof (c_strlen_data));
+	  c_strlen_data data = { };
 	  val = c_strlen (arg, 1, &data, eltsize);
 
 	  /* If we potentially had a non-terminated string, then
@@ -2824,8 +2823,7 @@ gimple_fold_builtin_stpcpy (gimple_stmt_iterator *gsi)
     }
 
   /* Set to non-null if ARG refers to an unterminated array.  */
-  c_strlen_data data;
-  memset (&data, 0, sizeof (c_strlen_data));
+  c_strlen_data data = { };
   tree len = c_strlen (src, 1, &data, 1);
   if (!len
       || TREE_CODE (len) != INTEGER_CST)
diff --git a/gcc/gimple-ssa-sprintf.c b/gcc/gimple-ssa-sprintf.c
index 52286a6da1c..d6278305fc4 100644
--- a/gcc/gimple-ssa-sprintf.c
+++ b/gcc/gimple-ssa-sprintf.c
@@ -2003,8 +2003,7 @@ get_string_length (tree str, unsigned eltsize)
   if (!str)
     return fmtresult ();
 
-  c_strlen_data data;
-  memset (&data, 0, sizeof (c_strlen_data));
+  c_strlen_data data = { };
   tree slen = c_strlen (str, 1, &data, eltsize);
   if (slen && TREE_CODE (slen) == INTEGER_CST)
     {
