https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95279
--- Comment #5 from Andrey Vihrov <andrey.vihrov at gmail dot com> --- Assuming that there indeed is no object at address 0x406310, wouldn't 6.5.6.8 from the C11 standard apply? > [...] If both the pointer operand and the result point to elements of the same > array object, or one past the last element of the array object, the evaluation > shall not produce an overflow; otherwise, the behavior is undefined.