From: Kenneth Zadeck Date: Fri, 9 May 2014 12:21:23 +0000 (+0000) Subject: re PR middle-end/61111 (Infinite recursion between fold_build2_stat_loc and fold_bina... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b8d29c66597d6ff2a41ca6a190c0bd52126f491d;p=gcc.git re PR middle-end/61111 (Infinite recursion between fold_build2_stat_loc and fold_binary_loc) 2014-05-06 Kenneth Zadeck PR middle-end/61111 * fold-const.c (fold_binary_loc): Changed width of mask. From-SVN: r210274 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 70614cf3431..ffe31f30d0f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-05-06 Kenneth Zadeck + + PR middle-end/61111 + * fold-const.c (fold_binary_loc): Changed width of mask. + 2014-05-09 Georg-Johann Lay * config/avr/avr-fixed.md (round3): Use -1U instead of -1 in diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 831aaba683c..c5bf81172a2 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -11358,7 +11358,7 @@ fold_binary_loc (location_t loc, wide_int c3 = c1.and_not (c2); for (w = BITS_PER_UNIT; w <= width; w <<= 1) { - wide_int mask = wi::mask (width - w, false, + wide_int mask = wi::mask (w, false, TYPE_PRECISION (type)); if (((c1 | c2) & mask) == mask && c1.and_not (mask) == 0) {