mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
7880e17390
commit
df161fc280
|
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
* config/rs6000/rs6000-string.c (expand_block_move): Don't use
|
||||
|
|
|
|||
|
|
@ -1681,7 +1681,7 @@ maybe_warn_nonstring_arg (tree fndecl, tree exp)
|
|||
bndrng[1] = maxlen;
|
||||
bound = void_type_node;
|
||||
}
|
||||
else
|
||||
else if (maxlen)
|
||||
{
|
||||
/* Replace the bound on the operation with the upper bound
|
||||
of the length of the string if the latter is smaller. */
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
PR fortran/48543
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
/* 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);
|
||||
}
|
||||
Loading…
Reference in New Issue