https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78528
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- For the int case, we can recognize easily that the function is doing f()+N. While for the Int case it looks worse: <bb 4> [100.0%]: _2 = s_7(D) + 1; D.3625 = strlen (_2); lhs$m_value_13 = MEM[(struct Int *)&D.3625]; _17 = lhs$m_value_13 + 1; MEM[(struct Int *)&D.3621] = _17; <bb 5> [0.0%]: return D.3621;