https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
--- Comment #34 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Goswin von Brederlow from comment #29) > There is no garantee in the C standard that '(type *)CONSTANT' will actually > point to the hardware address 'CONSTANT'. It's just how gcc happens to do it > in most cases. So no, your code is not fine. It is fragile. It relies on > implementation details of gcc. But lets not argue about that. Actually, lets. It relies on guaranteed behaviour of GCC: https://gcc.gnu.org/onlinedocs/gcc/Arrays-and-pointers-implementation.html That's not going to change, and neither is the fact that the Linux kernel depends on implementation-defined properties of GCC (where "implementation-defined" is used in the formal sense, not "just an implementation detail that might change tomorrow").