https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82267
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- > Is it really necessary for an unsigned offset to be wrap at 4G? Does ISO C > or GNU C guarantee that large unsigned values work like negative signed > integers when used for pointer arithmetic? I think it does not guarantee that. But on RTL we've lost signedness and we probably cannot distinguish this from the case of a negative value so we have to sign-extend.