On Fri, Jul 11, 2014 at 03:36:15PM +0200, Richard Biener wrote:
> *************** c_strlen (tree src, int only_value)
> *** 606,612 ****
>
> /* If the offset is known to be out of bounds, warn, and call strlen at
> runtime. */
> ! if (offset < 0 || offset > max)
> {
> /* Suppress multiple warnings for propagated constant strings. */
> if (! TREE_NO_WARNING (src))
> --- 610,617 ----
>
> /* If the offset is known to be out of bounds, warn, and call strlen at
> runtime. */
> ! if (only_value != 2
> ! && (offset < 0 || offset > max))
> {
> /* Suppress multiple warnings for propagated constant strings. */
> if (! TREE_NO_WARNING (src))
This looks wrong. I'd say you only want to disable the warning for
only_value != 2, but still return NULL_TREE, otherwise the strlen call will
be out of bounds in the compiler. So move only_value != 2 down to the
second if ?
Jakub