Pointer overflow is undefined because the Standard does not define it.
That's what undefined *means*. The semantics of some construct are
undefined both when the Standard says they are, and when it simply doesn't
say anything one way or the other. The semantics of a construct are
implementation-defined *only* when the Standard says they are. You can't
say `oh, it doesn't say anything about $FOO, therefore it's