http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57230

--- Comment #10 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #9)
> That case is for the
>   if (idx > 0)
>     {
>       si = get_strinfo (idx);
> ...
>     }
> block in there, and si != NULL && si->length != NULL_TREE && TREE_CODE
> (si->length) == INTEGER_CST is what you are looking for (together with
> gimple_assign_rhs1 (stmt) being non-zero INTEGER_CST.  You'd just verify that
> si->length is bigger than 0 and if so, set si->dont_invalidate = true;

Thanks a lot.  Unfortunately, that doesn't seem to work, for
# .MEM_5 = VDEF <.MEM_2>
p[1] = 79;
and
# .MEM_6 = VDEF <.MEM_5>
p[6] = 82;
the idx (obtained via get_addr_stridx) is 0, so we don't enter that if (idx >
0) { ... } block.

The idx is 1 for
# .MEM_10 = VDEF <.MEM_9>
p ={v} {CLOBBER};
but that isn't very helpful.

Reply via email to