------- Additional Comments From roger at eyesopen dot com 2005-03-17 05:06 ------- Hmm, yep, probably caused by my change.
It looks like with my change fold_widened_comparison is now converting (int)t == -1 into the equivalent t == (typeof(t))-1. Normally, this would be reasonable but the "special" semantics of HAVE_canonical_funcptr_for_compare clearly screw this up. My suggestion would be to add the following to the top of the subroutine fold_widened_comparison: #ifdef HAVE_canonicalize_funcptr_for_compare /* Disable this optimization if we're casting to a function pointer type on targets that require function pointer canonicalization. */ if (HAVE_canonicalize_funcptr_for_compare && TREE_CODE (shorter_type) == POINTER_TYPE && TREE_CODE (TREE_TYPE (shorter_type)) == FUNCTION_TYPE) return NULL_TREE; #endif Dave, could you give this a try and see if it restores bootstrap for you? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20493