Commit 3f46ef1f by Martin Sebor Committed by Jeff Law

builtins.c (unterminated_array): Use empty brace initialization for c_strlen_data.

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.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r267376
parent f7bdd292
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> 2018-12-23 Alan Modra <amodra@gmail.com>
PR 88346 PR 88346
...@@ -575,8 +575,7 @@ unterminated_array (tree exp, tree *size /* = NULL */, bool *exact /* = NULL */) ...@@ -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 /* C_STRLEN will return NULL and set DECL in the info
structure if EXP references a unterminated array. */ structure if EXP references a unterminated array. */
c_strlen_data data; c_strlen_data data = { };
memset (&data, 0, sizeof (c_strlen_data));
tree len = c_strlen (exp, 1, &data); tree len = c_strlen (exp, 1, &data);
if (len == NULL_TREE && data.len && data.decl) 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) ...@@ -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 /* If we were not passed a DATA pointer, then get one to a local
structure. That avoids having to check DATA for NULL before structure. That avoids having to check DATA for NULL before
each time we want to use it. */ each time we want to use it. */
c_strlen_data local_strlen_data; c_strlen_data local_strlen_data = { };
memset (&local_strlen_data, 0, sizeof (c_strlen_data));
if (!data) if (!data)
data = &local_strlen_data; data = &local_strlen_data;
...@@ -3085,8 +3083,7 @@ expand_builtin_strnlen (tree exp, rtx target, machine_mode target_mode) ...@@ -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 /* FIXME: Change c_strlen() to return sizetype instead of ssizetype
so these conversions aren't necessary. */ so these conversions aren't necessary. */
c_strlen_data data; c_strlen_data data { };
memset (&data, 0, sizeof (c_strlen_data));
tree len = c_strlen (src, 0, &data, 1); tree len = c_strlen (src, 0, &data, 1);
if (len) if (len)
len = fold_convert_loc (loc, TREE_TYPE (bound), 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) ...@@ -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 compile-time, not an expression containing a string. This is
because the latter will potentially produce pessimized code because the latter will potentially produce pessimized code
when used to produce the return value. */ when used to produce the return value. */
c_strlen_data data; c_strlen_data data = { };
memset (&data, 0, sizeof (c_strlen_data));
if (!c_getstr (src, NULL) if (!c_getstr (src, NULL)
|| !(len = c_strlen (src, 0, &data, 1))) || !(len = c_strlen (src, 0, &data, 1)))
return expand_movstr (dst, src, target, return expand_movstr (dst, src, target,
...@@ -8571,8 +8567,7 @@ fold_builtin_strlen (location_t loc, tree type, tree arg) ...@@ -8571,8 +8567,7 @@ fold_builtin_strlen (location_t loc, tree type, tree arg)
return NULL_TREE; return NULL_TREE;
else else
{ {
c_strlen_data data; c_strlen_data data = { };
memset (&data, 0, sizeof (c_strlen_data));
tree len = c_strlen (arg, 0, &data); tree len = c_strlen (arg, 0, &data);
if (len) if (len)
......
...@@ -1335,8 +1335,7 @@ get_range_strlen (tree arg, tree length[2], bitmap *visited, int type, ...@@ -1335,8 +1335,7 @@ get_range_strlen (tree arg, tree length[2], bitmap *visited, int type,
} }
else else
{ {
c_strlen_data data; c_strlen_data data = { };
memset (&data, 0, sizeof (c_strlen_data));
val = c_strlen (arg, 1, &data, eltsize); val = c_strlen (arg, 1, &data, eltsize);
/* If we potentially had a non-terminated string, then /* If we potentially had a non-terminated string, then
...@@ -2824,8 +2823,7 @@ gimple_fold_builtin_stpcpy (gimple_stmt_iterator *gsi) ...@@ -2824,8 +2823,7 @@ gimple_fold_builtin_stpcpy (gimple_stmt_iterator *gsi)
} }
/* Set to non-null if ARG refers to an unterminated array. */ /* Set to non-null if ARG refers to an unterminated array. */
c_strlen_data data; c_strlen_data data = { };
memset (&data, 0, sizeof (c_strlen_data));
tree len = c_strlen (src, 1, &data, 1); tree len = c_strlen (src, 1, &data, 1);
if (!len if (!len
|| TREE_CODE (len) != INTEGER_CST) || TREE_CODE (len) != INTEGER_CST)
......
...@@ -2003,8 +2003,7 @@ get_string_length (tree str, unsigned eltsize) ...@@ -2003,8 +2003,7 @@ get_string_length (tree str, unsigned eltsize)
if (!str) if (!str)
return fmtresult (); return fmtresult ();
c_strlen_data data; c_strlen_data data = { };
memset (&data, 0, sizeof (c_strlen_data));
tree slen = c_strlen (str, 1, &data, eltsize); tree slen = c_strlen (str, 1, &data, eltsize);
if (slen && TREE_CODE (slen) == INTEGER_CST) if (slen && TREE_CODE (slen) == INTEGER_CST)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment