https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119693
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The thing is that it is not well defined and Andrew attempted to show one of the reasons why. You simply can't have a valid object larger than half of the address space, because address arithmetics on it is not defined. Sure, you can mmap more than half of the address space if the OS allows you to do that, but you shouldn't call standard string/memory functions on it, you are then on your own to deal with it.