http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49165
--- Comment #6 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-05-26 08:25:26 UTC --- && !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 1))) 2578 && !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 2)))) shouldn't either none or both arms be VOID_TYPE_P? So, && (!VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 1))) || !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 2)))) { gcc[_checking]_assert (!VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 1)))) && !VOID_TYPE_P (TREE_TYPE (TREE_OPERAND (pred, 2)))) ... would be better?