https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86955
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |enhancement
Last reconfirmed|2019-06-07 00:00:00 |2021-11-23
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Martin Sebor from comment #1)
> The reason is that the strlen pass sees the following:
Note we get now (after r12-5465-g911b633803):
_1 = &p_4(D)->a;
__builtin_memcpy (_1, "123", 4);
_2 = p_4(D) + 2;
_3 = __builtin_strlen (_2);
But strlen pass still does not understand p_4(D)+4 is the same as &p_4(D)->a[1]