[Bug middle-end/63770] [5 Regression] ICE on valid code at all optimization levels on x86_64-linux-gnu

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Nov 7 08:31:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63770

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
from a match.pd pattern

/* Try to fold (type) X op CST -> (type) (X op ((type-x) CST))
   when profitable.
   For bitwise binary operations apply operand conversions to the
   binary operation result instead of to the operands.  This allows
   to combine successive conversions and bitwise binary operations.
   We combine the above two cases by using a conditional convert.  */

(<unnamed-signed:9>) b.f0 & 1 -> (<unnamed-signed:9>) (b.f0 & 1)

then from fold_unary

7825          /* Convert (T)(x & c) into (T)x & (T)c, if c is an integer
7826             constants (if x has signed type, the sign bit cannot be set
7827             in c).  This folds extension into the BIT_AND_EXPR.
...

The existing measure against this recursion doesn't apply.  I have a fix.



More information about the Gcc-bugs mailing list