Wow, gcc generates code that's incorrect unless memory protection is being enforced? I didn't even realize it would be possible to build a kernel that way.
The real WTF here is that people are still building "secure" software in a language where programmer mistakes cause undefined behavior...