http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52862
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-04-12 15:00:25 UTC --- I'm testing Index: convert.c =================================================================== --- convert.c (revision 186373) +++ convert.c (working copy) @@ -44,11 +44,6 @@ convert_to_pointer (tree type, tree expr if (TREE_TYPE (expr) == type) return expr; - /* Propagate overflow to the NULL pointer. */ - if (integer_zerop (expr)) - return force_fit_type_double (type, double_int_zero, 0, - TREE_OVERFLOW (expr)); - switch (TREE_CODE (TREE_TYPE (expr))) { case POINTER_TYPE: at least I don't see why 0 is special - for example why we should allow conversion of a COMPLEX_CST or VECTOR_CST to a pointer.