http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49330
--- Comment #9 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-06-10 10:55:53 UTC --- > Creating that pointer is perfectly valid - you are allowed to cast a > pointer to an uintptr_t and back, which is what the code does (in some > obfuscated way of course). No disagreement, "problematic" only in the sense that it breaks the assumption of the aliasing machinery, as you're creating a pointer out of nothing.