https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97976
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> --- The fact that objects cannot live at address zero is not just a GCC quirk. As I said, it's required by the C and C++ standards. A null pointer cannot be dereferenced, and cannot point to any object. I'm surprised that anybody finds that surprising. Embedded/kernel systems that violate that rule are the exception, not the norm.