https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109834
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I am 99% sure it was introduced by r14-673-g5fdcfe3c5776 The bug is: + (if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (@1))) Should have been: + (if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (TREE_TYPE (@1)))) In both places.