Commit df161fc2 by Martin Sebor Committed by Martin Sebor

PR tree-optimization/88659 - ICE in maybe_warn_nonstring_arg

gcc/ChangeLog:
	* calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.

gcc/testsuite/ChangeLog:
	* gcc.dg/Wstringop-truncation-6.c: New test.

From-SVN: r267569
parent 7880e173
2019-01-03 Martin Sebor <msebor@redhat.com>
PR tree-optimization/88659
* calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com> 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
* config/rs6000/rs6000-string.c (expand_block_move): Don't use * config/rs6000/rs6000-string.c (expand_block_move): Don't use
...@@ -65,7 +70,7 @@ ...@@ -65,7 +70,7 @@
(maybe_set_strlen_range): Parts refactored into set_strlen_range. (maybe_set_strlen_range): Parts refactored into set_strlen_range.
Call set_strlen_range. Call set_strlen_range.
* tree-ssa-strlen.h (set_strlen_range): Add prototype. * tree-ssa-strlen.h (set_strlen_range): Add prototype.
PR middle-end/88663 PR middle-end/88663
* gimple-fold.c (get_range_strlen): Update prototype to no longer * gimple-fold.c (get_range_strlen): Update prototype to no longer
need the flexp argument. need the flexp argument.
...@@ -80,7 +85,7 @@ ...@@ -80,7 +85,7 @@
from get_range_strlen. from get_range_strlen.
* gimple-ssa-sprintf.c (get_string_length): Update for the new * gimple-ssa-sprintf.c (get_string_length): Update for the new
get_range_strlen API. get_range_strlen API.
2019-01-02 Jan Hubicka <hubicka@ucw.cz> 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
PR lto/88130 PR lto/88130
......
...@@ -1681,7 +1681,7 @@ maybe_warn_nonstring_arg (tree fndecl, tree exp) ...@@ -1681,7 +1681,7 @@ maybe_warn_nonstring_arg (tree fndecl, tree exp)
bndrng[1] = maxlen; bndrng[1] = maxlen;
bound = void_type_node; bound = void_type_node;
} }
else else if (maxlen)
{ {
/* Replace the bound on the operation with the upper bound /* Replace the bound on the operation with the upper bound
of the length of the string if the latter is smaller. */ of the length of the string if the latter is smaller. */
......
2019-01-03 Martin Sebor <msebor@redhat.com>
PR tree-optimization/88659
* gcc.dg/Wstringop-truncation-6.c: New test.
2019-01-02 Thomas Koenig <tkoenig@gcc.gnu.org> 2019-01-02 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/48543 PR fortran/48543
......
/* PR tree-optimization/88659 - ICE in maybe_warn_nonstring_arg
{ dg-do compile }
{ dg-options "-O0 -Wall" } */
const char a[5] = "1234";
int cst_idx_cst_bnd (void)
{
return __builtin_strnlen (&a[1], 0);
}
int var_idx_cst_bnd (void)
{
int i = 1;
return __builtin_strnlen (&a[i], 0);
}
int phi_idx_cst_bnd (int i)
{
return __builtin_strnlen (&a[i ? 1 : 2], 0);
}
int unk_idx_cst_bnd (int i)
{
return __builtin_strnlen (&a[i], 0);
}
int cst_idx_var_bnd (void)
{
int n = 0;
return __builtin_strnlen (&a[1], n);
}
int cst_idx_phi_bnd (int n)
{
return __builtin_strnlen (&a[1], n ? 1 : 2);
}
int cst_idx_unk_bnd (int n)
{
return __builtin_strnlen (&a[1], n);
}
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