------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-05 22:58 ------- Specifically the following code: else if (INTEGRAL_TYPE_P (inner_type) && INTEGRAL_TYPE_P (outer_type) && TYPE_UNSIGNED (inner_type) == TYPE_UNSIGNED (outer_type) && TYPE_PRECISION (inner_type) == TYPE_PRECISION (outer_type)) { bool first_boolean = (TREE_CODE (inner_type) == BOOLEAN_TYPE); bool second_boolean = (TREE_CODE (outer_type) == BOOLEAN_TYPE); if (first_boolean == second_boolean) return true; }
The min/max of the two types might be different. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21923