https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66984
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-07-24 Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- The usual fix in fold-const.c is to make sure to convert operands to the required type when building the final expression. Thus instead of 10828 return fold_build2_loc (loc, EXACT_DIV_EXPR, type, arg0, arg1); do return fold_build2_loc (loc, EXACT_DIV_EXPR, type, fold_convert (type, arg0), fold_convert (type, arg1)); you can see this pattern in many places. Care to post a patch? It's pre-approved.