------- Comment #4 from rguenth at gcc dot gnu dot org 2009-01-16 18:30 ------- void *p; intptr_t iptr = (intptr_t)p - (intptr_t)&iptr;
of course. Then this is just (void *)((intptr_t)&iptr + (intptr_t)p - (intptr_t)&iptr) <==> (void *)(intptr_t)p which is guaranteed by the std -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38835