gimple-fold.c (get_range_strlen): Minor logic cleanup.
* gimple-fold.c (get_range_strlen): Minor logic cleanup. Add comments on code's intent. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r267483
This commit is contained in:
parent
598f7235fb
commit
80c2bad6b6
2 changed files with 23 additions and 6 deletions
|
@ -1,6 +1,9 @@
|
|||
2018-12-30 Martin Sebor <msebor@redhat.com>
|
||||
Jeff Law <law@redhat.com>
|
||||
|
||||
* gimple-fold.c (get_range_strlen): Minor logic cleanup. Add comments
|
||||
on code's intent.
|
||||
|
||||
* gimple-fold.c (strlen_range_kind): New enum.
|
||||
(get_range_strlen): Update signature to use strlen_range_kind
|
||||
instead of type+fuzzy.
|
||||
|
|
|
@ -1548,10 +1548,17 @@ get_range_strlen (tree arg, tree length[2], bitmap *visited,
|
|||
if (!get_range_strlen (ops[i], length, visited, rkind,
|
||||
flexp, eltsize, nonstr))
|
||||
{
|
||||
if (rkind == SRK_LENRANGE_2)
|
||||
*maxlen = build_all_ones_cst (size_type_node);
|
||||
else
|
||||
if (rkind != SRK_LENRANGE_2)
|
||||
return false;
|
||||
/* Set the upper bound to the maximum to prevent
|
||||
it from being adjusted in the next iteration but
|
||||
leave MINLEN and the more conservative MAXBOUND
|
||||
determined so far alone (or leave them null if
|
||||
they haven't been set yet). That the MINLEN is
|
||||
in fact zero can be determined from MAXLEN being
|
||||
unbounded but the discovered minimum is used for
|
||||
diagnostics. */
|
||||
*maxlen = build_all_ones_cst (size_type_node);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -1576,10 +1583,17 @@ get_range_strlen (tree arg, tree length[2], bitmap *visited,
|
|||
if (!get_range_strlen (arg, length, visited, rkind, flexp,
|
||||
eltsize, nonstr))
|
||||
{
|
||||
if (rkind == SRK_LENRANGE_2)
|
||||
*maxlen = build_all_ones_cst (size_type_node);
|
||||
else
|
||||
if (rkind != SRK_LENRANGE_2)
|
||||
return false;
|
||||
/* Set the upper bound to the maximum to prevent
|
||||
it from being adjusted in the next iteration but
|
||||
leave MINLEN and the more conservative MAXBOUND
|
||||
determined so far alone (or leave them null if
|
||||
they haven't been set yet). That the MINLEN is
|
||||
in fact zero can be determined from MAXLEN being
|
||||
unbounded but the discovered minimum is used for
|
||||
diagnostics. */
|
||||
*maxlen = build_all_ones_cst (size_type_node);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
Loading…
Add table
Reference in a new issue