https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115014
--- Comment #11 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #10)
> int f(int *a)
> {
> int b;
> size_t t = (size_t)&b;
> size_t t1 = (size_t)a;
> return *(int*)(((size_t)&b)+(t-t1));
> }
>
> Is kinda of valid c but might fail with your definition.
The result of integer-to-pointer conversion is implementation-defined, so it's
not necessarily valid if the implementation has segmented memory.
