re PR middle-end/66984 (ICE: fold_binary changes type of operand, causing failure in verify_gimple_assign_binary)

2015-07-24  Gary Funck  <gary@intrepid.com>

	PR middle-end/66984
	* fold-const.c (fold_binary_loc): Call fold_convert on arguments to
        fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.

From-SVN: r226168
This commit is contained in:
Gary Funck 2015-07-24 16:10:39 +00:00 committed by Gary Funck
parent a5a57bf378
commit 64447a2d50
2 changed files with 9 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2015-07-24 Gary Funck <gary@intrepid.com>
PR middle-end/66984
* fold-const.c (fold_binary_loc): Call fold_convert on arguments to
fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
2015-07-24 Tom de Vries <tom@codesourcery.com>
* tree-parloops.c (gen_parallel_loop): Add debug print for alternative

View file

@ -10746,7 +10746,9 @@ fold_binary_loc (location_t loc,
after the last round to changes to the DIV code in expmed.c. */
if ((code == CEIL_DIV_EXPR || code == FLOOR_DIV_EXPR)
&& multiple_of_p (type, arg0, arg1))
return fold_build2_loc (loc, EXACT_DIV_EXPR, type, arg0, arg1);
return fold_build2_loc (loc, EXACT_DIV_EXPR, type,
fold_convert (type, arg0),
fold_convert (type, arg1));
strict_overflow_p = false;
if (TREE_CODE (arg1) == INTEGER_CST